首页 > 学院 > 开发设计 > 正文

532. K-diff Pairs in an Array ------Leetcode

2019-11-06 06:51:49
字体:
来源:转载
供稿:网友
public class Solution {    public int findPairs(int[] nums, int k) {        HashMap<Integer,Integer> map=new HashMap<>();        for(int i=0;i<nums.length;i++){            if(!map.containsKey(nums[i])){                map.put(nums[i],1);            }else{                map.put(nums[i],map.get(nums[i])+1);            }        }        int count=0;        for(Map.Entry<Integer,Integer>entry:map.entrySet()){            if(k==0){                if(entry.getValue()>1){                    count++;                }            }else{                if(k>0&&map.containsKey(entry.getKey()-k)){                    count++;                }            }        }        return count;    }}

嗯,挺简单的。。。大概就是用个hashmap记录下每个数字,以及其出现的次数

再次遍历数组,当出现nums [i]-k在map中存在的时候,就自加一,当然0要特殊处理,所以要保存存在的次数。。

有一个问题,就是感觉k<0的时候,{1,2,3,4,5} -1这个输入的时候,明明应该是4是,毕竟比如1-2=-1嘛,但是结果是k<0认为其是0

摊手


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表