这道题来自:NOIP全国联赛普及组-2006年NOIP全国联赛普及组
这道题不难,就是一个数组排序和去重,但是我没有给数组去重
当时想先排序,排序后的结果放入数组然后去重,但是突然感觉好麻烦就没有这么做
先看代码
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] arr=new int[n];
for (int i = 0; i < arr.length; i++)
{
arr[i]=sc.nextInt();
}
Arrays.sort(arr);//排序
int sum = 1;//结果数组长度
for (int i = 1; i < n; i++) {
if (arr[i] == arr[i - 1]) // 如果待输出数字与前面数字重复,则进入下一次循环,这次循环不累加长度
continue;
//System.out.print(" "+arr[i]);
sum+=1;
}
System.out.println(sum);
System.out.print(arr[0]);
for (int i = 1; i < n; i++) {
if (arr[i] == arr[i - 1]) // 如果待输出数字与前面数字重复,则进入下一次循环,实现去重输出
continue;
System.out.print(" "+arr[i]);
}
}
利用巧妙的输出 只取出需要的结果,不需要对整个数组进行处理