LeetCode.532 K-diff Pairs in an Array
来源:互联网 发布:ac68u 网络设置 编辑:程序博客网 时间:2024/06/08 18:27
题目:
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 = 2Output: 2Explanation: 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 = 1Output: 4Explanation: 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 = 0Output: 1Explanation: There is one 0-diff pair in the array, (1, 1).
Note:
- The pairs (i, j) and (j, i) count as the same pair.
- The length of the array won't exceed 10,000.
- All the integers in the given input belong to the range: [-1e7, 1e7].
分析:
class Solution { public int findPairs(int[] nums, int k) { //给定数组,返回其数值对,两个数的绝对距离是k(即两数的差值的绝对值为k) //要求:元素相同(顺序无关)的为一对,数组长度不超过10000,所有数的的范围为Integer范围 //解法1:暴力解法 //解法1:暴力解法 Arrays.sort(nums); if(k<0) return 0; int count=0; for(int i=0;i<nums.length-1;i++){ //跳过相同的,该题需要考虑两种连续元素情况,相同元素只取一次 while(i<nums.length-2&&nums[i]==nums[i+2]){ i++; } for(int j=i+1;j<nums.length;j++){ while(j!=nums.length-1&&nums[j]==nums[j+1]){ j++; } if(nums[j]-nums[i]==k){ //表明在相同元素边界倒数2个,下次i直接从不同的元素开始 if(k==0){i++;} count++; break; }else if(nums[j]-nums[i]>k){ break; }else if(nums[i]==nums[j]){ //为了下一次i从不同元素开始 i++; } } } return count; }}
阅读全文
0 0
- LeetCode K-diff Pairs in an Array
- LeetCode : K-diff Pairs in an Array
- leetCode-K-diff Pairs in an Array
- K-diff Pairs in an Array leetcode 532
- Leetcode 532 K-diff Pairs in an Array
- [leetcode]-532 K-diff Pairs in an Array
- 20170605-leetcode-532-K-diff Pairs in an Array
- LeetCode #532 K-diff Pairs in an Array
- Leetcode 532 K-diff Pairs in an Array
- LeetCode.532 K-diff Pairs in an Array
- 532 K-diff Pairs in an Array
- LeetCode刷题【Array】 K-diff Pairs in an Array
- 【Leetcode】532. K-diff Pairs in an Array
- 532. K-diff Pairs in an Array ------Leetcode
- 【leetcode】532. K-diff Pairs in an Array
- [Leetcode]532. K-diff Pairs in an Array
- [LeetCode]532. K-diff Pairs in an Array
- LeetCode 532. K-diff Pairs in an Array
- PL/SQL批量运行SQL语句
- 内部类
- 电器的好基友,还带多种玩法,0元送云合智能插座
- Linux系统如何正确的开机关机及快捷键的使用
- Android Camera2 Opengles2.0 图像实时滤镜 显示 视频编码
- LeetCode.532 K-diff Pairs in an Array
- Android studio 升级3.0后ReactNative 打包报错 Could not find com.android.tools.build:gradle:3.0.0.
- OpenJ_POJ C17K Lying Island
- 结构化分析与设计方法之模块独立性
- 每日产品辣评:耳机也要比,小米魅族不愧是死冤家
- 性能测试总结---工具选择
- python3.6 源码分析(三):创建函数
- Deep Learning学习 之 卷积神经网络(CNN)
- 助力营销形态创新,个推推出里程碑式平台“个灯”