【Leetcode 每日一题 - 扩展】1512. 好数对的数目
问题背景
给你一个整数数组
n
u
m
s
nums
nums。
如果一组数字
(
i
,
j
)
(i,j)
(i,j) 满足
n
u
m
s
[
i
]
=
n
u
m
s
[
j
]
nums[i] = nums[j]
nums[i]=nums[j] 且
i
<
j
i < j
i<j,就可以认为这是一组 好数对 。
返回好数对的数目。
数据约束
- 1 ≤ n u m s . l e n g t h ≤ 100 1 \le nums.length \le 100 1≤nums.length≤100
- 1 ≤ n u m s [ i ] ≤ 100 1 \le nums[i] \le 100 1≤nums[i]≤100
解题过程
用哈希表维护每个数字出现的次数,每次遇到一个元素的时候,累计它出现过的次数就可以了。
具体实现
class Solution {
public int numIdenticalPairs(int[] nums) {
int res = 0;
Map<Integer, Integer> count = new HashMap<>();
for (int num : nums) {
int cur = count.getOrDefault(num, 0);
res += cur;
count.put(num, cur + 1);
}
return res;
}
}