[leetcode] 220. Duplicate III @pythonが含まれています



220 Contains Duplicate Iii Python



元の質問

整数の配列が与えられた場合、nums [i]とnums [j]の絶対差が最大でtであり、iとjの絶対差が最大であるように、配列に2つの異なるインデックスiとjがあるかどうかを調べます。 k。

例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
承認済み
87,182
提出物
447,414

解決

暴力的な解決策。数値をトラバースしてから、i + k内の数値を見つけます。 2つの数値の差の絶対値が<= t, return True. Base case is when Fal = 0 and nums has no duplicate value, return False.

コード

class Solution(object): def containsNearbyAlmostDuplicate(self, nums, k, t): ''' :type nums: List[int] :type k: int :type t: int :rtype: bool ''' l = len(nums) if t == 0 and l == len(set(nums)): return False for i in range(l): for j in range(i+1, i+k+1): if j < l and abs(nums[i] - nums[j]) <= t: return True return False