| 12345678910111213141516171819202122232425262728293031 | 
							- type pair struct {
 
- 	_1 int
 
- 	_2 int
 
- }
 
- func findPairs(nums []int, k int) (cnt int) {
 
- 	n := len(nums)
 
- 	if n < 2 {
 
- 		return
 
- 	}
 
- 	sort.Ints(nums)
 
- 	m := make(map[pair]bool)
 
- 	fast, slow := 1, 0
 
- 	for fast < n {
 
- 		if det := nums[fast] - nums[slow]; det == k {
 
- 			if _, ok := m[pair{nums[slow], nums[fast]}]; !ok {
 
- 				cnt++
 
- 				m[pair{nums[slow], nums[fast]}] = true
 
- 			}
 
- 			fast, slow = fast+1, slow+1
 
- 		} else if det < k {
 
- 			fast++
 
- 		} else {
 
- 			slow++
 
- 			if fast == slow {
 
- 				fast++
 
- 			}
 
- 		}
 
- 	}
 
- 	return
 
- }
 
 
  |