标签:tps col 来源 key val 解释 http style 遍历数组
给你一个整数数组 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
解释:数组中的每组数字都是好数对
思路
1,定义一个map,key为元素值,val为元素下标的list集合
2,遍历数组,将相同值的元素下标都放到list中
3,计算list集合的排列数组个数,是个以1为首项,公差为1的等差数列,个数为list.size - 1
代码
public int numIdenticalPairs(int[] nums) { Map<Integer,List<Integer>> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { List<Integer> vals = map.get(nums[i]); if(vals == null){ vals = new ArrayList<>(); map.put(nums[i],vals); } vals.add(i); } int count = 0; for (Map.Entry<Integer, List<Integer>> entry : map.entrySet()) { List<Integer> list = entry.getValue(); int size = list.size(); count += size * (size - 1) / 2; } return count; }
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-good-pairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
标签:tps col 来源 key val 解释 http style 遍历数组
原文地址:https://www.cnblogs.com/dongma/p/14219375.html