求教怎么写,才能通过代码提交,本地运行都是可以的
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner;
public class Sort { private static int[] names; public static void main(String[] args) { Scanner in=new Scanner(System.in); int a=in.nextInt();//这是输入a names = new int[a]; int i = 0; while(i<a){ names = in.nextInt(); i++; } names = deleteRepeat(names); quickSort(0, names.length-1); lg(names.length); lg(names); } private static void quickSort(int left,int right){ if(left>right){ return; } int temp = names[left]; int i=left; int j = right; while(i!=j){ while(names[j]>temp&&i<j){ j--; } while(names<=temp&&i<j){ i++; } if(i<j){ int x = names; names = names[j]; names[j] = x; } } names[left] = names; names =temp; quickSort(left,i-1); quickSort(i+1, right); } private static int[] deleteRepeat(int[] names){ Map map = new HashMap(); for(int i=0;i<names.length;i++){ if(map.containsKey(names)){ names = -1; continue; }else{ map.put(names, ""); } } int[] rs =new int[map.keySet().size()]; Iterator it = map.keySet().iterator(); int i=0; while(it.hasNext()){ int x = (Integer)it.next(); rs=x; i++; } return rs; } public static void lg(Object o){ System.out.println(o); } public static void lgnoline(Object o){ System.out.print(o); } public static void lg(int[] a){ for(int i=0;i<a.length;i++){ lgnoline(a+" "); } lg(""); } }
|