博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
219. Contains Duplicate II
阅读量:4565 次
发布时间:2019-06-08

本文共 1359 字,大约阅读时间需要 4 分钟。

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 absolute difference between i and j is at most k.

 

在数组中找两个相等的数,如果他们索引之差的绝对值  <= k  则返回true

 

C++(26ms):

1 class Solution { 2 public: 3     bool containsNearbyDuplicate(vector
& nums, int k) { 4 unordered_set
s ; 5 int len = nums.size() ; 6 for (int i = 0 ; i < len ; i++){ 7 if (i > k) 8 s.erase(nums[i-k-1]) ; 9 if (!s.insert(nums[i]).second)10 return true ;11 }12 return false ;13 }14 };

 

 

 

C++(155ms):

1 class Solution { 2 public: 3     bool containsNearbyDuplicate(vector
& nums, int k) { 4 unordered_map
Map ; 5 int len = nums.size() ; 6 bool flag = false ; 7 for (int i = 0; i < len;i++ ){ 8 if (Map[nums[i]]){ 9 int t = abs(i+1 - Map[nums[i]]) ; 10 Map[nums[i]] = i+1 ;11 if (t <= k){12 flag = true ;13 break ;14 } 15 }else{16 Map[nums[i]] = i+1 ;17 cout<
<

 

转载于:https://www.cnblogs.com/mengchunchen/p/7590947.html

你可能感兴趣的文章
UIImageView 一些属性设置
查看>>
C# winfrom 打印到Excel中
查看>>
Java中ThreadLocal类的作用以及实现原理
查看>>
mustache学习补遗
查看>>
MVC4 View 的呈现
查看>>
HTML5的自定义属性data-*详细介绍和JS操作实例
查看>>
LINQ:是BUG还是~~~
查看>>
python文件操作 seek(),tell()
查看>>
数据库优化方法
查看>>
联想梁军加盟乐视网任副总裁
查看>>
水平垂直居中
查看>>
十九、扩展 Extensions
查看>>
golang批量修改文件名
查看>>
【NOIP 模拟题】[山东多校联合模拟赛 day1 T1] 矩形计数(暴力)
查看>>
FACL 文件系统的权限设置
查看>>
C标准库的setlocale()用法笔记
查看>>
windows下php7.1安装redis扩展以及redis测试使用全过程
查看>>
MPP-使用说明
查看>>
4.7上午
查看>>
canvas绘制中的API
查看>>