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
摊手
新闻热点
疑难解答