去重排序题

KiKi去重整数并排序

http://www.nowcoder.com/questionTerminal/f59b914172b94c69a2b29ad0a1d9b1a7

import java.io.*;
import java.util.Arrays;

public class Main{
    public static void main(String args[])throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int n=Integer.parseInt(br.readLine());
        String[] s = br.readLine().split(" ");
        int[] arr = new int[s.length];
        for(int i = 0;i < s.length;i++){
            arr[i] = Integer.parseInt(s[i]);
        }
        Arrays.sort(arr);
        int a = arr[0];
        StringBuffer str = new StringBuffer();
        str.append(a+" ");
        for(int i : arr){
            if(a != i){
                str.append(i + " ");
            }
            a = i;
        }

        System.out.println(str);

    }
}

在去重排序这个题目经常翻车,要注意。这一题的思路首先要把数组排序号,然后剩下的要去重。

        //例如数组是{1,2,2,3,4}
        int a = arr[0];        //首先定义一个a为第一个元素
        StringBuffer str = new StringBuffer();
        str.append(a+" ");        //str字符串中添加第一个元素
        for(int i : arr){   
            //这个循环,首先拿a与第一个数比较,这里不要还以为i还是下标,这里的i已经被赋值了,
            //就是说这里刚开始就是a=1和1对比,因为相等所以不把它加入到字符串里,那么再把1赋值给a,
            //再循环一次,就是1和2对比,因为没有,所以加到字符串里,再把2赋值给a,如此循环       
            if(a != i){    
                str.append(i + " ");
            }
            a = i;
        }
全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务