2024年华为OD机试真题-小朋友来自多少小区
华为OD机试真题-小朋友来自多少小区-2024年OD统一考试(D卷)
题目描述:
幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个。我们将这些数量汇总到数组garden中。
请根据这些小朋友给出的信息,计算班级小朋友至少来自几个小区?
输入描述:
输入:garden[] = {2, 2, 3}
说明:
garden数组长度最大为999
每个小区的小朋友数量最多1000人,也就是garden[i]的范围为[0,999]
输出描述:
输出:7
补充说明:
示例1
输入:
2 2 3输出:
7说明:
解释:
第一个小朋友反馈有两个小朋友和自己同一小区,即此小区有3个小朋友
第二个小朋友反馈有两个小朋友和自己同一小区,即此小区有3个小朋友。
这两个小朋友,可能是同一小区的,且此小区的小朋友只有3个人。
第三个小区反馈还有3个小朋友与自己同一小区,则这些小朋友只能是另外一个小区的。这个小区有4个小朋友。
解题思路:
考察对贪心的理解和运用。
Java解法:
import java.util.Scanner; import java.util.Map; import java.util.HashMap; import java.util.Set; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Map<Integer,Integer> map = new HashMap<>(); while (in.hasNextInt()) { // 注意 while 处理多个 case int num = in.nextInt(); int key = num + 1 ; if(map.get(key)!=null){ map.put(key,map.get(key)+1); }else{ map.put(key,1); } } Set<Integer> set = map.keySet();
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
华为OD机试题库2024年 文章被收录于专栏
2024年OD统一考试(D卷),最新最完整题库。 收录130+道真题,提供解题思路,Java/Python/C++三种答案源码。