大梦千年 level
获赞
0
粉丝
0
关注
5
看过 TA
4
电子科技大学
2025
Java
IP属地:四川
暂未填写个人简介
私信
关注
2024-10-15 21:12
电子科技大学 Java
投递百度等公司8个岗位
0 点赞 评论 收藏
分享
2024-08-10 12:17
电子科技大学 Java
题目:清除数组的最小花费大佬们,帮忙看下,这个代码的思路有什么问题呢,测试用例过了,但是提交上去后只过了15%。public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint count = in.nextInt();ArrayList<Integer> arrayList = new ArrayList<>();for (int i = 0; i < count; i++) {int n = in.nextInt();int k = in.nextInt();int x = in.nextInt();HashMap<Integer, Integer> map = new HashMap<>();ArrayList<Integer> list = new ArrayList<>();for (int j = 0; j < n; j++) {int num = in.nextInt();map.merge(num, 1, Integer::sum);list.add(num);}int min = getFirstMinNum(map);int minRes = Math.min(n * x, k * min);for (int j = 0; j < list.size(); j++) {if (list.get(j) < min) {assert map.containsKey(list.get(j));if (map.get(list.get(j)) == 1) {min = list.get(j);map.remove(list.get(j));} else {Integer v = map.get(list.get(j));map.put(list.get(j), v - 1);}}int tempRes = k * min + x * (j + 1);if (tempRes < minRes) {minRes = tempRes;}}arrayList.add(minRes);}in.nextLine();arrayList.forEach(System.out::println);}}private static int getFirstMinNum(HashMap<Integer, Integer> map) {int i = 0;for (; i<= 200000; i++) {if (!map.containsKey(i)) {return i;}}return i;}
投递美团等公司8个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务