笔试题:出现次数统计,输入n,a,b和有n个数的数组一个数出现b次,其他数字要么出现a次,要么不出现,求出现b次的数字??java题解简单易懂,
时间: 2024-10-22 07:19:22 浏览: 34
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
笔试题描述的是一个经典的计数问题,你可以通过哈希表(HashMap)来解决。以下是简单的Java代码示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
int n = 5; // 数组长度
int a = 3; // 其他数字出现的次数
int b = 2; // 需要找出出现次数为b的数字
// 创建一个初始化为0的Map,键是数组元素,值是出现次数
Map<Integer, Integer> countMap = new HashMap<>();
// 假设输入的数组叫做arr
int[] arr = {1, 2, 2, 3, 4}; // 例子数组
for (int num : arr) {
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
if (entry.getValue() == b) {
System.out.println("数字 " + entry.getKey() + " 出现了 " + b + " 次");
}
}
}
}
```
这个程序首先遍历数组,然后更新每个元素在`countMap`中的出现次数。最后再次遍历`countMap`,找到出现次数等于`b`的数字并打印出来。
阅读全文