LeetCode 219 存在重複元素2

2022-06-13 17:54:08 字數 1870 閱讀 6649

問題描述:

給定乙個整數陣列和乙個整數 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
方法1:(只適用於正數組成的list)erro

1

class

solution(object):

2def

containsnearbyduplicate(self, nums, k):

3"""

4:type nums: list[int]

5:type k: int

6:rtype: bool

7"""

8 flag =true

9 nums = "".join([str(x) for x in

nums])

10for i in

range(len(nums)):

11 index = nums[i+1:].find(nums[i])

12if index >=0 :

13 index += i + 1

14while

true:

15if index - i ==k:

16return

true

17else

:18 temp =index

19 index = nums[temp+1:].find(nums[i])

20if index >=0 :

21 index += temp+1

22else:23

return

nums[i]

24break

25return false

官方:感覺很無厘頭啊,[99,99] k = 2返回true........只能把小於號加上。。。。。理解錯誤,收到了例子的干擾。說的就是最大不超過k

1

class

solution(object):

2def

containsnearbyduplicate(self, nums, k):

3"""

4:type nums: list[int]

5:type k: int

6:rtype: bool

7"""

8 num_map={}

9for i in

xrange(len(nums)):

10if nums[i] in num_map and i-num_map[nums[i]]<=k:

11return

true

12else

:13 num_map[nums[i]]=i

14return false

2018-09-19 14:47:04

leetcode 219 存在重複元素

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

LeetCode 219 存在重複元素 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 usr bin pytho...

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