問題描述:
給定乙個整數陣列和乙個整數 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
1class
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
1class
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 輸入...