去重排序题

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-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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