算法训练 景点游览 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]+" ");
}
}
}
}
