LeetCode:计算相同数组元素的下标差(Contains Duplicate II)
来源:互联网 发布:拉货搬家软件 编辑:程序博客网 时间:2024/05/29 02:41
题目:
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.
思路:
首先判断数组元素非空非1. 如果为空为1则返回False
判断数组长度是否小于等于k,如果是则看是否有相同元素,没有则返回False,有则返回True
其次用一个辅助字典:关键字为nums[i],为了方便理解,子字典值设为——{“last_index“: 位置}。
那么下次遇到相同元素时,查找它的上次出现位置,计算与当前的距离,最小的一个存入res
遍历整个数组,直到res<k, 返回True。否则返回False。
代码(Python):时间 O(n), 空间 O(n)
class Solution(object): def containsNearbyDuplicate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: bool """ if len(nums) < 2: return False if len(nums) <= k: return False if len(set(nums))==len(nums) else True dic = dict() res = len(nums) for i in range(len(nums)): key = nums[i] if key not in dic: dic[key] = {'last_index':i} else: res = min(res, i - dic[key]['last_index']) dic[key]['last_index'] = i if res <= k: return True return False
0 0
- LeetCode:计算相同数组元素的下标差(Contains Duplicate II)
- Contains Duplicate II:计算数组内位置之差不超过K的两元素位置
- 219. Contains Duplicate II (判断数组中是否有重复元素且其下标之差不超过k)
- LeetCode Contains Duplicate II 数组
- leetcode解题之219 # Contains Duplicate II Java版 (数组中出现重复元素)
- Leetcode:219. Contains Duplicate II(数组是否含有重复元素)
- (LeetCode)Contains Duplicate II --- 查找重复的元素升级版
- 219. Contains Duplicate II---数组中两个重复的数字的下标最多相差k
- leetcode_219. Contains Duplicate II 查找距离小于k的范围内是否有相同的元素,字典
- [LeetCode]Contains Duplicate II
- [LeetCode] Contains Duplicate II
- leetcode Contains Duplicate II
- LeetCode Contains Duplicate II
- [leetcode] Contains Duplicate II
- LeetCode Contains Duplicate II
- 【leetcode】Contains Duplicate II
- leetcode--Contains Duplicate II
- [leetcode]Contains Duplicate II
- XAudio2学习之混音
- 抽象类 面积与周长
- JAVA中的管道流
- (五)mybatis学习之mapper代理开发方式及与spring整合
- 常规功能和模块自定义系统 (cfcmms)—039模块记录(数据)的权限设计(4)
- LeetCode:计算相同数组元素的下标差(Contains Duplicate II)
- HDFS的备份机制
- ACM常用的C++头文件!
- 基于AVPlayer 自定义播放器
- HTML学习笔记(十四)URL
- leetcode之Power of Two
- 1003. Emergency
- 我的linux学习之路:Git常用命令
- 蓝桥杯单片机设计与开发笔记(四)