LeetCode532. K-diff Pairs in an Array
来源:互联网 发布:unity3d 点光源不亮 编辑:程序博客网 时间:2024/06/04 19:13
Description
Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array. Here a k-diff pair is defined as an integer pair (i, j), where i and j are both numbers in the array and their absolute difference is k.
Example 1:
Input: [3, 1, 4, 1, 5], k = 2
Output: 2
Explanation: There are two 2-diff pairs in the array, (1, 3) and (3, 5).
Although we have two 1s in the input, we should only return the number of unique pairs.
Example 2:
Input:[1, 2, 3, 4, 5], k = 1
Output: 4
Explanation: There are four 1-diff pairs in the array, (1, 2), (2, 3), (3, 4) and (4, 5).
Example 3:
Input: [1, 3, 1, 5, 4], k = 0
Output: 1
Explanation: There is one 0-diff pair in the array, (1, 1).
my program
思路:本题主要需要理解题目中给出的k-diff这个新概念,明白了后就不难解出答案。
利用一个map储存数组中的数字,以及出现的次数。当k=0的时候,统计map中value大于1的key的数目,即为所求k-diff的个数;当k>0的时候查找key′=key+k 在map中是否存在,若存在即k-diff对,count+1
class Solution {public: int findPairs(vector<int>& nums, int k) { int count = 0; if (k < 0) return count; map<int, int> mp; for (auto number : nums) { mp[number]++; } map<int, int>::iterator it; if (k == 0) { for (it = mp.begin(); it != mp.end(); it++) { if (it->second > 1) count++; } } else { for (it = mp.begin(); it != mp.end(); it++) { if (mp.find(it->first+k) != mp.end()) count++; } } return count; }};
Submission Details
72 / 72 test cases passed.
Status: Accepted
Runtime: 39 ms
- leetcode532~K-diff Pairs in an Array
- LeetCode532. K-diff Pairs in an Array
- leetcode532. K-diff Pairs in an Array
- K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- K-diff Pairs in an Array
- K-diff Pairs in an Array
- K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- LeetCode K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- LeetCode : K-diff Pairs in an Array
- 532. K-diff Pairs in an Array
- 牛腩新闻系统前台设计
- C语言的数据类型
- 查看Android签名
- qwb与矩阵 【DP】+【输入挂】
- iostream整理
- LeetCode532. K-diff Pairs in an Array
- 集群中配置多台计算机之间ssh无密码登录的一种简便方法
- 面试题22. 栈的压入、弹出序列
- linux使用常识
- leetcode Add to List 200. Number of Islands
- EasyUI Datagrid中load,reload,loadData的区别。
- 该把JS文件放在HTML文档的那个位置
- Win 下 Java 环境变量配置
- tp的复合查询