算法训练 景点游览 JAVA

问题描述   小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。 输入格式   输入的第一行包含一个正整数N,表示N个景点。   第二行有N个正整数,表示每个景点的评分值。 输出格式   输出一行,包含N个正整数,表示N个景点的评分从大到小的排列 样例输入 4 3 2 4 1 样例输出 4 3 2 1 数据规模和约定   N<=1000,每个景点的评分<=10000。   思路:JAVA里面不能对数组进行从大到小排序,所以先用sort从下到大排序,在将最大,最小,次大,次小…调换。不知道为什么蓝桥算法训练会出这样的题。。。。哈哈哈哈

import java.util.Arrays;
import java.util.Scanner;

public class 景点游览 {
          
   

	public static void main(String[] args) {
          
   
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a[] = new int[n];
		for(int i=0;i<n;i++) {
          
   
			a[i] = sc.nextInt();
		}
		//sort函数从小到大排序
		Arrays.sort(a);
		for(int i=0;i<n/2;i++) {
          
   //交换最大,最小,次大,次小...的位置
			int t=a[i];
			a[i] = a[n-1-i];
			a[n-1-i]=t;			
		}
		for(int i=0;i<n;i++) {
          
   //输出,注意最后一个输出没空格
			if(i==n-1)
				System.out.print(a[i]);
			else {
          
   
				System.out.print(a[i]+" ");
			}
		}
	}

}
经验分享 程序员 微信小程序 职场和发展