找出数组中第一个重复
时间: 2023-09-01 12:07:27 浏览: 86
可以使用哈希表来解决这个问题。具体步骤如下:
1. 创建一个空的哈希表。
2. 遍历数组中的每个元素:
- 如果当前元素不在哈希表中,则将其添加到哈希表中。
- 如果当前元素已经在哈希表中,则说明找到了第一个重复元素,返回该元素的值。
3. 如果数组中没有重复元素,则返回 null。
以下是使用 JavaScript 实现的代码示例:
```javascript
function findFirstDuplicate(arr) {
const hash = {};
for (let i = 0; i < arr.length; i++) {
if (hash[arr[i]]) {
return arr[i];
} else {
hash[arr[i]] = true;
}
}
return null;
}
```
使用示例:
```javascript
const arr = [2, 3, 4, 2, 5, 6, 7, 5];
console.log(findFirstDuplicate(arr)); // 输出 2
```
相关问题
找出数组中第一个重复数
可以使用哈希表解决这个问题。遍历整个数组,将每个元素插入哈希表中,如果发现重复元素就直接返回该元素。如果遍历完整个数组都没有找到重复元素,则返回-1表示没有重复元素。
以下是使用Python实现的示例代码:
```python
def find_first_duplicate(nums):
hash_table = {}
for num in nums:
if num in hash_table:
return num
else:
hash_table[num] = 1
return -1
```
该函数的时间复杂度为O(n),空间复杂度为O(n)。
java中找出数组中第一个重复的数字。
可以使用哈希表(Hash Table)来解决该问题,具体步骤如下:
1. 创建一个哈希表(HashMap)用于存储数组中的数字,初始为空。
2. 遍历数组中的每个数字,对于每个数字,如果该数字不在哈希表中,则将该数字作为键,值为 true 存入哈希表中;如果该数字已经在哈希表中,则说明该数字是数组中的重复数字,直接返回该数字即可。
3. 如果遍历完数组后仍然没有找到重复数字,则返回 -1。
以下是 Java 代码实现:
```java
public static int findDuplicate(int[] nums) {
Map<Integer, Boolean> map = new HashMap<>();
for (int num : nums) {
if (map.containsKey(num)) {
return num;
} else {
map.put(num, true);
}
}
return -1;
}
```
阅读全文