去重排序题
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;
}
查看1道真题和解析