532. 数组中的 k-diff 数对

 

 

 

https://leetcode.cn/problems/k-diff-pairs-in-an-array/

func findPairs(nums []int, k int) int {

    mp:=make(map[int]bool,0) //标记
    ans:=make(map[int]bool,0)//保存数对
    for i:=0;i<len(nums);i++{
        if mp[nums[i]-k]{  //往前找存在
            ans[nums[i]-k]=true
        }
        if mp[nums[i]+k]{//往后找也存在,为什么要找两次呢?因为数据是无序的,nums[i]-k有可能是负数
            ans[nums[i]]=true
        }
        mp[nums[i]]=true
    }
    return len(ans)
}

 

posted @ 2022-06-16 15:12  知道了呀~  阅读(55)  评论(0编辑  收藏  举报