[leetcode][hash] Contains Duplicate II

原创 2015年07月08日 15:46:06

题目:

Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between iand j is at most k.

维护一个长度为k的窗口

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
	if (nums.size() < 2 || k <= 0) return false;
	int start = 0, end = 0;
	set<int> hashTable;
	hashTable.insert(nums[0]);
	for (int i = 1; i < nums.size(); ++i){
		set<int>::iterator iter = hashTable.find(nums[i]);
		if (iter != hashTable.end()) return true;
		hashTable.insert(nums[i]);
		end = i;
		if (end - start == k){
			hashTable.erase(nums[start]);
			++start;
		}
	}
	return false;
}
};


【LeetCode-面试算法经典-Java实现】【219-Contains Duplicate II(包含重复元素II)】

【219-Contains Duplicate II(包含重复元素II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月29日 06:36
  • 3258

【LeetCode-面试算法经典-Java实现】【217-Contains Duplicate(包含重复元素)】

【217-Contains Duplicate(包含重复元素)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-C...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月28日 07:00
  • 2703

深入理解ButterKnife源码并掌握原理(二)

好,我们接着parseBindView的步骤3 ,忘记了在哪里了,咦。 可以看下上一篇,哈哈。 步骤3 BindingClass bindingClass = targetClassMap...
  • ta893115871
  • ta893115871
  • 2016年09月10日 22:20
  • 2193

【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】

【113-Path Sum II(路径和II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree and a sum, find al...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月12日 06:23
  • 2498

Pandas中的数据重塑(reshape)功能

引言Pandas 是 python 中常用的数据分析软件库,它提供了 DataFrames 和 Series 的工具,这使得 numpy 和 matplotlib 可以更加便捷地读取转换数据。数据重塑...
  • jiahaohappy
  • jiahaohappy
  • 2017年05月08日 19:49
  • 239

[Leetcode]287. Find the Duplicate Number简单解法及解释 双指针复杂度O(n)

题目链接:Find the Duplicate Number Given an array nums containing n + 1 integers where each integer is...
  • u011613729
  • u011613729
  • 2016年01月01日 11:34
  • 4273

买卖股票的最佳时机I II III IV

买卖股票的最佳时机I II III IV I假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。II假设有一...
  • u010669349
  • u010669349
  • 2017年12月22日 22:47
  • 31

leetCode 57.Insert Interval (插入区间) 解题思路和方法

Insert Interval  Given a set of non-overlapping intervals, insert a new interval into the interva...
  • xygy8860
  • xygy8860
  • 2015年07月15日 14:11
  • 671

【leetcode题解】【再看一遍】【86】【M】Contains Duplicate III

Given an array of integers, find out whether there are two distinct indices i and j in the array suc...
  • sscssz
  • sscssz
  • 2015年12月17日 23:08
  • 196

LeetCode之Math题目汇总

Add BinaryGiven two binary strings, return their sum (also a binary string).For example, a = "11" ...
  • Yano_nankai
  • Yano_nankai
  • 2015年12月27日 13:04
  • 494
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode][hash] Contains Duplicate II
举报原因:
原因补充:

(最多只允许输入30个字)