计科院19软工范征远


私信TA

用户名:1954418428

访问量:1170

签 名:

等  级
排  名 21117
经  验 636
参赛次数 1
文章发表 8
年  龄 0
在职情况 学生
学  校 怀化学院
专  业

  自我简介:

解题思路: 先整出来再说。先排序,相同的元素只打印最左边那个

注意事项:

参考代码:

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


public class Main {
	 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 < n; i++) {
            arr[i]=sc.nextInt();
        }
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        int i=0;
        while (i<n){
            //打印当前元素
            //相同的数 打印的都是最左边的那个
            System.out.print(arr[i]+" ");
            int j=i;//记录当前打印元素的下标
            while (j+1<n){ //j+1=n时 到了最后一个元素  最后一个元素没有后一个元素 跳出循环
                //当前打印的元素 与 其后一个元素相比
                if(arr[j]==arr[j+1]){
                    //相同 则往后移 直到找到 下一个不同于当前打印元素的元素
                    j++;
                }else{
                    //不同直接跳出循环
                    //j最后指向的是最后一个与当前相同元素的下标
                    break;
                }
            }
            //将i指向 不同于当前元素的下一个元素
            i=j+1;
        }
    }
}


 

0.0分

1 人评分

  评论区