zoukankan      html  css  js  c++  java
  • 1187. 数组中的K-diff对

    1187. 数组中的K-diff对

    中文English

    给定一个整数数组和一个整数k,您需要找到数组中唯一k-diff对的数量。这里k-diff对被定义为整数对(i, j),其中i和j都是数组中的数字,它们的绝对差是k。

    样例

    样例 1:

    输入: [3, 1, 4, 1, 5], k = 2
    输出: 2
    说明:数组中有两个2-diff对,(1, 3)和(3, 5)。
    虽然我们在输入中有两个1,但我们应该只返回一对(1,3)。
    

    样例 2:

    输入:[1, 2, 3, 4, 5], k = 1
    输出: 4
    说明:数组中有四个1-diff对, (1, 2), (2, 3), (3, 4) 和 (4, 5).
    

    样例 3:

    输入: [1, 3, 1, 5, 4], k = 0
    输出: 1
    说明:数组中有一个0-diff对,(1, 1).
    

    注意事项

    1.对(i,j)和(j,i)计为同一对。
    2.数组的长度不超过10,000。
    3.给定输入中的所有整数都属于以下范围:[ -1e7, 1e7]。

    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param nums: an array of integers
        @param k: an integer
        @return: the number of unique k-diff pairs
        """
        '''
        大致思路:
        1.初始化res = [] ,给出所有的两位数组,然后给出差值,如果差值的绝对值=k的话,append到res里面,最终返回res的长度即可。
        '''
        def findPairs(self,nums,k):
            res = []
            for i in range(len(nums)-1):
                for j in range(i+1,len(nums)):
                    if abs(nums[j]-nums[i]) == k and [nums[i],nums[j]] not in res:
                        res.append([nums[i],nums[j]])
            return len(res)

    注:lintcode未通过,你的代码运行时间超过了限制,检查你的时间复杂度。TLE通常是由死循环造成的,思考一下你的时间复杂度是否是最优的。待优化

  • 相关阅读:
    CSS浏览器兼容解决总结
    Access的数据操作类(带异常处理)
    网页消息类
    生成验证码(纯中文)
    C#连接各种数据库(持续更新中)
    asp.net中实现文件批量上传!你会了吗?
    http 错误编号大全(转)
    SQL SERVER数据操作类
    web.config加密和解密
    C#中操作CMD命令行窗口
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12725855.html
Copyright © 2011-2022 走看看