Contains Duplicate II
来源:互联网 发布:江苏大学网络教学平台 编辑:程序博客网 时间:2024/05/01 00:30
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
multimap<int,int>mmap;
typedef multimap<int,int>::iterator iter;
int i=0;
for(i=0;i<nums.size();i++)
mmap.insert(make_pair(nums[i],i+1));
sort(nums.begin(),nums.end());
for(i=0;i<nums.size();)
{
int j=mmap.count(nums[i]);
if(j!=1)
{
iter beg=mmap.lower_bound(nums[i]);
iter end=mmap.upper_bound(nums[i]);
iter last=beg;
iter beg1=beg; //先保存,在变
while(beg1!=end)
{
last=beg1;
beg1++;
}
while(beg!=last)
{
iter beg2=beg;
beg++; //千万不能用beg++;
if((beg)->second - (beg2)->second <= k)
return true;
//beg1++;
// if(beg!=end)
// { if(beg1->second-last->second<=k) return 1;}
}
//if(((*last).second-(*beg).second)<=k) return 1;
i=i+j;
}
else i=i+1;
}
return 0;
}
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
multimap<int,int>mmap;
typedef multimap<int,int>::iterator iter;
int i=0;
for(i=0;i<nums.size();i++)
mmap.insert(make_pair(nums[i],i+1));
sort(nums.begin(),nums.end());
for(i=0;i<nums.size();)
{
int j=mmap.count(nums[i]);
if(j!=1)
{
iter beg=mmap.lower_bound(nums[i]);
iter end=mmap.upper_bound(nums[i]);
iter last=beg;
iter beg1=beg; //先保存,在变
while(beg1!=end)
{
last=beg1;
beg1++;
}
while(beg!=last)
{
iter beg2=beg;
beg++; //千万不能用beg++;
if((beg)->second - (beg2)->second <= k)
return true;
//beg1++;
// if(beg!=end)
// { if(beg1->second-last->second<=k) return 1;}
}
//if(((*last).second-(*beg).second)<=k) return 1;
i=i+j;
}
else i=i+1;
}
return 0;
}
};
- class Solution {
- public:
- bool containsNearbyDuplicate(vector<int>& nums, int k) {
- map<int, int> buf;
- int n = nums.size();
- for (int i = 0; i < n; i++)
- {
- if (buf.find(nums[i]) != buf.end() && i-buf[nums[i]] <= k)
- {
- return true;
- }
- else
- {
- buf[nums[i]] = i;
- }
- }
- return false;
- }
- };
0 0
- Contains Duplicate && Contains Duplicate II
- [LeetCode]Contains Duplicate II
- Contains Duplicate II
- [LeetCode] Contains Duplicate II
- leetcode Contains Duplicate II
- LeetCode Contains Duplicate II
- [leetcode] Contains Duplicate II
- LeetCode Contains Duplicate II
- LeetCode219:Contains Duplicate II
- #219 Contains Duplicate II
- 219. Contains Duplicate II
- 【leetcode】Contains Duplicate II
- leetcode--Contains Duplicate II
- 219Contains Duplicate II
- Contains Duplicate II
- Contains Duplicate II
- Contains Duplicate II
- Leetcode_219 Contains Duplicate II
- NSArray(不可变数组)、NSMutableArray(可变数组)、数组排序、NSNumber(多态:数值和对象互转)、NSValue(将结构体转换成对象)
- EJB笔记---JBoss 开发环境搭配
- 收藏网站14
- message sent to deallocated instance
- iOS开发 - CoreData框架 数据持久化
- Contains Duplicate II
- 扩展的欧几里得模板
- 收藏网站15
- PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged
- spring component-scan扫描 context:exclude-filter 与 context:include-filter
- 收藏网站16
- 由RGB到HSV颜色空间的理解
- Cocos2d-X lua 学习笔记之划屏拖尾特效
- svn: Checksum mismatch while updating 'D:\workspace\demo\test\.svn\text-base\test.php.svn-base'