• 532. 数组中的K-diff数对


     

     

     

    思路:

    想到:绝对值应是非负数,所以k<0的情况下要排除(测试用例有k<0的);
    设置计数器ans=0;
    1、转set去重,再转回list,将newnums[]升序排列;
    2、若k==0,则 2-diff 数对是相同元素对,所以遍历newnums,其中元素nums.count(newnums[i]) >= 2,
      ans加1;

    3、若k>0,则 2-diff 数对是不同元素对,遍历newnums,若(newnums[i] + k)也在newnums中,
      则ans加1;

    4、返回ans。

     1 class Solution(object):
     2     def findPairs(self, nums, k):
     3         """
     4         :type nums: List[int]
     5         :type k: int
     6         :rtype: int
     7         """
     8         # 绝对值应是非负数
     9         if k < 0:
    10             return 0
    11         # 转set去重,再升序排
    12         newnums = sorted(set(nums))
    13         ans = 0
    14         # 差为0,则是相同元素对
    15         if k == 0:
    16             for i in range(len(newnums)):
    17                 if nums.count(newnums[i]) >= 2:
    18                     ans += 1
    19         # 差的绝对值大于0,则是不同元素对
    20         else:
    21             for i in range(len(newnums)):
    22                 if newnums[i] + k in newnums:
    23                     ans += 1
    24         return ans
    25 
    26 
    27 if __name__ == '__main__':
    28     solution = Solution()
    29     print(solution.findPairs([1, 3, 1, 4, 5], 0))
  • 相关阅读:
    less 28-31
    less27 27a
    sqli 26 26a
    sqli lab 25 25a
    kail 更新源
    sqli lab 23 、24
    less 20 21 22
    less18 19
    less 17
    数字类型,字符串类型,列表类型
  • 原文地址:https://www.cnblogs.com/panweiwei/p/12757702.html
Copyright © 2020-2023  润新知