去重排序题
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; }