给你一个整数数组nums
和两个整数k
和t
。请你判断是否存在两个不同下标i
和j
,使得abs(nums[i]-nums[j]) <= t
,同时又满足abs(i-j) <= k
。
如果存在则返回true
,不存在返回false
。
示例 1:
输入:nums = [1,2,3,1], k = 3, t = 0
输出:true
示例 2:
输入:nums = [1,0,1,1], k = 1, t = 2
输出:true
示例 3:
输入:nums = [1,5,9,1,5,9], k = 2, t = 3
输出:false
提示:
0 <= nums.length <= 2 * 10^4
-2^31 <= nums[i] <= 2^31 - 1
0 <= k <= 10^4
0 <= t <= 2^31 - 1
1、暴力
python解答:
class Solution:
def containsNearbyAlmostDuplicate(self, nums: List[int], k: int, t: int) -> bool:
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if abs(nums[i]-nums[j]) <= t and abs(i-j) <= k:
return True
return False
时间复杂度:O(n^2)
空间复杂度:O(1)
留言