第二题 感觉每减一次都排序太蠢了
import java.util.Arrays; import java.util.Scanner; public class 分组对话 { public static void main(String[] args) {
Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < n; i++) { int m = sc.nextInt(); int dh[] = new int[m]; for (int j = 0; j < m; j++) {
dh[j] = sc.nextInt(); }
System.out.println(maxdh(dh));
}
} private static int maxdh(int[] dh) { if (dh.length < 3){ return 0; }
Arrays.sort(dh); int max = 0; int a = dh[dh.length-3]; while(a >0){
max += 1; dh[dh.length-3] -= 1; dh[dh.length-2] -= 1; dh[dh.length-1] -= 1; Arrays.sort(dh); a = dh[dh.length-3]; } return max; }
}
第一题
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class 报数重复 { public static void main(String[] args) {
Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int sz[] = new int[n]; for (int i = 0; i < sz.length; i++) {
sz[i] = sc.nextInt(); } if (n <= m){ for (int i = 0; i < sz.length ; i++) {
System.out.println(sz[i]); }
}else{
Map<Integer,Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < sz.length; i++) { if (!map.containsKey(sz[i])){
map.put(sz[i],1); }else{ if (map.get(sz[i]) != -1){
map.put(sz[i],map.get(sz[i])+1); if (map.get(sz[i]) > m){
map.put(sz[i],-1); }
}
}
} for (int i = 0; i < sz.length; i++) { if (map.get(sz[i]) != -1){
System.out.println(sz[i]); }
}
}
}
}
#猿辅导##笔试题目#