存在重複元素 II

2021-10-09 11:47:49 字數 624 閱讀 1384

問題:給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums [i] = nums [j],並且 i 和 j 的差的 絕對值 至多為 k。

思路:利用雜湊表,首先新建乙個字典,然後通過判斷這個索引在字典內,然後找到這個祥同志的另外乙個索引只有相減是否小於等於k

class

solution

:def

containsnearbyduplicate

(self, nums: list[

int]

, k:

int)

->

bool

:dict

=for i in

range

(len

(nums)):

if nums[i]

indict

and i -

dict

[nums[i]

]<= k:

#找到相同值的索引相減然後是否小於等於k

return

true

dict

[nums[i]

]= i

return

false

存在重複元素 II

給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums i nums j 並且 i 和 j 的差的絕對值最大為 k。示例 1 輸入 nums 1,2,3,1 k 3 輸出 true示例 2 輸入 nums 1,0,1,1 k 1 輸出 true示例 3 輸入 n...

存在重複元素II

剛開始沒有理解題意,以為存在間距為k的兩個數相等才能返回 後來又認為 沒有超過間距為k 的兩個數才能返回 其實是只要存在兩個相等數,它們倆之間的間距小於等於k就可以返回true 初始 public boolean containsnearbyduplicate int nums,int k else...

217存在重複元素 219 存在重複元素 II

題目官網上有,直接上思路 思路一 利用python的set無重複元素的特性 class solution def containsduplicate self,nums list int bool return len set nums len nums 思路二 先對陣列進行排序,重複元素肯定排在前...