Contains Duplicate II
2015-06-06 18:37
429 查看
struct Rec { int dig, ind; }; bool cmp(struct Rec a,struct Rec b) { if(a.dig!=b.dig) return a.dig<b.dig; return a.ind<b.ind; } class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { int len=nums.size(),i; struct Rec rec[len]; for(i=0;i<len;i++) { rec[i].dig=nums[i]; rec[i].ind=i; } sort(rec,rec+len,cmp); for(i=0;i<len-1;i++) { if(rec[i].dig==rec[i+1].dig&&rec[i+1].ind-rec[i].ind<=k) return 1; } return 0; } };
View Code
1、需要注意题意中相差 at most k ,而不是exactly k
2、将数字和下标放到结构体中,按数字第一关键字,下标第二关键字排序,依次比较每个数字和它后一个数字是否相等,下标的范围是否在K即可
相关文章推荐
- linux使用mail命令发邮件―第三方smtp
- 我们iTailor智能衣橱项目想法v1.0
- 如何使用Openair4G的OTG以及进行ping操作
- [LeetCode] Contains Duplicate(II,III)
- grails瞬时属性
- VC2008中ActiveX Control Test Container程序去那里了?
- grails不能调试
- 五子棋AI算法浅谈
- leetcode--Contains Duplicate II
- busybox sendmail发送邮件(含附件)
- open failed: EBUSY (Device or resource busy)
- leetcode--Contains Duplicate
- Win8 解决错误 1406。安装程序无法将值OSE.exe写入注册表项。无法保存对main权限所作的更改
- Explain之key_len长度计算
- main_activiy cannot be resolved or is not a field
- Invalid file name: must contain only [a-z0-9_.]
- What is Servlet Container
- Gradle project sync failed. Please fix your project and try
- OnEraseBkGnd与OnPaint
- ubuntu的安装软件问题:E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavaila