问题描述
- 给你一个整数数组nums。如果一组数字(i,j) 满足 nums[i] == nums[j] 且 i < j,就可以认为这是一组好数对。返回好数对的数目。
- 输入:nums = [1,2,3,1,1,3]
- 输出:4
解题思路
- 首先统计每一个数字出现的次数,假设数字1出现n次,那么由数字1出现的好数对的数目为:(n * (n-1))/2, 也就是等差数列求和。
Java 代码
public int numIdenticalPairs(int[] nums){
HashMap<Integer, Integer> map = new HashMap<>(); // 定义一个map,用来统计每个数字出现的次数
for(int num :<