每日一題 存在重複元素 II

2021-10-17 00:19:25 字數 1100 閱讀 5895

給定乙個整數陣列和乙個整數 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:

輸入: nums = [1,2,3,1,2,3], k = 2

輸出: false

於是我就用了雙指標加迴圈巢狀的方法來解,但是超出時間限制了。

class

solution

:def

containsnearbyduplicate

(self, nums, k)

: left =

0 right =

1 nums_len =

len(nums)

while left <= nums_len -2:

while right <= nums_len -1:

if nums[left]

== nums[right]:if

abs(left - right)

<= k:

return

true

right +=

1 left +=

1 right = left +

1return

false

if __name__ ==

'__main__'

: nums =[1

,0,1

,1] k =

1 res = solution(

).containsnearbyduplicate(nums, k)

print

(res)

存在重複元素 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...

存在重複元素 II

問題 給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums i nums j 並且 i 和 j 的差的 絕對值 至多為 k。思路 利用雜湊表,首先新建乙個字典,然後通過判斷這個索引在字典內,然後找到這個祥同志的另外乙個索引只有相減是否小於等於k class s...