java黑皮书第十章练习题10.14
时间: 2023-09-01 16:07:37 浏览: 179
java语言程序设计基础篇第十版第十四章练习答案.pdf
题目描述:
假设有一个包含n个元素的数组a,其中每个元素都是从1到n之间的一个整数。请给出一种时间复杂度为O(n)的算法,用于判断a中是否有重复元素。
解题思路:
题目中给定了数组a中的每个元素都是从1到n之间的一个整数,因此我们可以使用一个哈希表(HashMap)来记录每个数字的出现次数,如果某个数字的出现次数大于1,则说明数组a中有重复元素。
时间复杂度为O(n)。
Java代码实现:
```
public static boolean hasDuplicate(int[] a) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < a.length; i++) {
if (map.containsKey(a[i])) {
return true;
} else {
map.put(a[i], 1);
}
}
return false;
}
```
阅读全文