Number of Good Pairs
Question
Given an array of integers nums.
A pair (i,j) is called good if nums[i] == nums[j] and i < j.
Return the number of good pairs.
Constraints:
1 <= nums.length <= 100
1 <= nums[i] <= 100
Example 1:
Input: nums = [1,2,3,1,1,3] Output: 4 Explanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.
Example 2:
Input: nums = [1,1,1,1] Output: 6 Explanation: Each pair in the array are good.
Example 3:
Input: nums = [1,2,3] Output: 0
Approach 1: 循环嵌套
过于简单,直接上代码:
1 | class Solution(object): |
复杂度分析
时间复杂度:
空间复杂度:O(1)
Approach 2: 组合计数
用哈希表统计每个数在序列中出现的次数,假设数字 k 在序列中出现的次数为
v,那么满足题目中所说的
1 | class Solution: |
复杂度分析
- 时间复杂度:O(n)。
- 空间复杂度:O(n),即哈希表使用到的辅助空间的空间代价。