class Solution {
public:
int numIdenticalPairs(vector<int>& nums) {
}
};
1512. 好数对的数目
给你一个整数数组 nums
。
如果一组数字 (i,j)
满足 nums[i]
== nums[j]
且 i
< j
,就可以认为这是一组 好数对 。
返回好数对的数目。
示例 1:
输入:nums = [1,2,3,1,1,3] 输出:4 解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始
示例 2:
输入:nums = [1,1,1,1] 输出:6 解释:数组中的每组数字都是好数对
示例 3:
输入:nums = [1,2,3] 输出:0
提示:
1 <= nums.length <= 100
1 <= nums[i] <= 100
原站题解
rust 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2023-09-12 19:54:46
impl Solution { pub fn num_identical_pairs(nums: Vec<i32>) -> i32 { let mut map: [i32;101] = [0;101]; nums.into_iter().fold(0, |mut acc, x| { acc += map[x as usize]; map[x as usize] += 1; acc }) } }
rust 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2023-09-12 19:54:26
impl Solution { pub fn num_identical_pairs(nums: Vec<i32>) -> i32 { let mut ret = 0; for i in 0..nums.len() { for j in i+1..nums.len() { if nums[i] == nums[j] { ret += 1; } } } ret } }
cpp 解法, 执行用时: 4 ms, 内存消耗: 7.1 MB, 提交时间: 2023-09-12 19:52:34
class Solution { public: int numIdenticalPairs(vector<int>& nums) { int ans = 0; vector<int> cnt(101); for (int num: nums ) { ans += cnt[num]; cnt[num] += 1; } return ans; } };
java 解法, 执行用时: 0 ms, 内存消耗: 38.7 MB, 提交时间: 2023-09-12 19:44:33
class Solution { public int numIdenticalPairs(int[] nums) { int[] cnt = new int[101]; int ans = 0; for ( int num:nums ) { ans += cnt[num]; cnt[num] += 1; } return ans; } }
php 解法, 执行用时: 12 ms, 内存消耗: 19.1 MB, 提交时间: 2023-09-12 19:42:24
class Solution { /** * @param Integer[] $nums * @return Integer */ function numIdenticalPairs($nums) { $cnt = array_fill(0, 101, 0); $ans = 0; foreach ( $nums as $num ) { $ans += $cnt[$num]; $cnt[$num] += 1; } return $ans; } }
golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2023-09-12 19:41:20
func numIdenticalPairs(nums []int) int { cnt := make([]int, 101) ans := 0 for _, num := range nums { ans += cnt[num] cnt[num] += 1 } return ans }
python3 解法, 执行用时: 48 ms, 内存消耗: 13.5 MB, 提交时间: 2020-11-11 22:30:37
class Solution: def numIdenticalPairs(self, nums: List[int]) -> int: cnt = [0] * 101 ans = 0 for num in nums: ans += cnt[num] cnt[num] += 1 return ans