猿辅导第一二题全AC代码,求第三题思路和第二题优质解


第二题 感觉每减一次都排序太蠢了
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]);  }
            }
        }
    }
}

#猿辅导##笔试题目#
全部评论
强啊,能过就行了。第二题没做出来,凉凉
点赞 回复
分享
发布于 2019-08-24 20:58

相关推荐

点赞 4 评论
分享
牛客网
牛客企业服务