219. Contains Duplicate II [easy] (Python)
来源:互联网 发布:vue.js深入浅出pdf 编辑:程序博客网 时间:2024/05/23 23:25
题目链接
https://leetcode.com/problems/contains-duplicate-ii/
题目原文
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.
题目翻译
给定一个数组,和一个整数k,判断该数组中是否存在不同下标的 i 和 j 两个元素,使得 nums[i] = nums[j],且 i 和 j 的差不超过k。
思路方法
暴力两重循环不可取,无法AC。。。
思路一
遍历所有元素,将元素值当做键、元素下标当做值,存放在一个字典中。遍历的时候,如果发现重复元素,则比较其下标的差值是否小于k,如果小于则可直接返回True,否则更新字典中该键的值为新的下标。
代码
class Solution(object): def containsNearbyDuplicate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: bool """ num_map = {} for i in xrange(len(nums)): if nums[i] in num_map and i - num_map[nums[i]] <= k: return True else: num_map[nums[i]] = i return False
思路二
在遍历列表的时候维护一个集合,集合中保存当前元素前面的k个元素,每次访问一个元素时判断是否在该集合中出现过。
代码
class Solution(object): def containsNearbyDuplicate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: bool """ window = set([]) for i in xrange(len(nums)): if i > k: window.discard(nums[i-k-1]) if nums[i] in window: return True else: window.add(nums[i]) return False
PS: 新手刷LeetCode,新手写博客,写错了或者写的不清楚还请帮忙指出,谢谢!
转载请注明:http://blog.csdn.net/coder_orz/article/details/51674266
0 0
- 219. Contains Duplicate II [easy] (Python)
- Easy-题目41:219. Contains Duplicate II
- Leetcode 219. Contains Duplicate II (Easy) (cpp)
- leetcode219[easy]----Contains Duplicate II
- 217. Contains Duplicate [easy] (Python)
- 219. Contains Duplicate II (python)
- Leet Code OJ 219. Contains Duplicate II [Difficulty: Easy]
- 219.leetcode Contains Duplicate II(easy)[数组 滑动窗口]
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 219. Contains Duplicate II
- 第十六周实践项目-阅读程序(4)
- 流媒体整理
- ACdream 1213 Matrix Multiplication 其实是一道思维题
- Mapper XML 文件
- 与其他APP进行交互
- 219. Contains Duplicate II [easy] (Python)
- CART
- 静态成员应用
- python scikit-learn计算tf-idf词语权重
- jQuery 全选
- CVPR 2016 论文集
- 第十六周项目3—阅读程序(3)
- HTML5 Web Workers
- Android中的TCP协议与UDP协议