题解 | #明明的随机数#
明明的随机数
http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
TreeSet
import java.io.*; import java.math.*; import java.util.*; public class Main{ public static void main(String[] args) { InputStream in = System.in; Scanner sc = new Scanner(new BufferedInputStream(in)); while(sc.hasNext()) { int n = sc.nextInt(); Set<Integer> s = new TreeSet<>(); while(n-- > 0) { int x = sc.nextInt(); s.add(x); } for(Integer i : s) { System.out.println(i); } } sc.close(); } }手写排序+去重
import java.io.*; import java.math.*; import java.util.*; public class Main{ public static void main(String[] args) { InputStream in = System.in; Scanner sc = new Scanner(new BufferedInputStream(in)); while(sc.hasNext()) { int n = sc.nextInt(); int[] nums = new int[n]; for(int i = 0; i < n; ++ i) { nums[i] = sc.nextInt(); } qsort(nums,0,nums.length-1); print(nums); } sc.close(); } public static void qsort(int[] nums, int l, int r) { if(l >= r) return; int i = l - 1, j = r + 1, x = nums[l + r >> 1]; while(i < j) { do i ++; while(nums[i] < x); do j --; while(nums[j] > x); if(i < j) swap(nums,i,j); } qsort(nums,l,j); qsort(nums,j + 1,r); } public static void swap(int[] nums, int i, int j) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; } public static void print(int[] nums) { System.out.println(nums[0]); for(int i = 1; i < nums.length; i ++) { if(nums[i] != nums[i-1]) System.out.println(nums[i]); else continue; } } }
查看14道真题和解析

