Contains Duplicate II
来源:互联网 发布:微软流程图软件 编辑:程序博客网 时间:2024/05/20 23:37
https://leetcode.com/problems/contains-duplicate-ii/
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.
这道题目源自 [Contains Duplicate] (http://blog.csdn.net/hemmingway/article/details/52003577)
不同的是查找到的两个相同元素的下标距离不能超过给定的参数K。所以可以把上个题目改进一下,创建一个index数组,将nums数组元素排序前后的index关系映射存储起来,比如有个元素3的原先的下标是 i,排序过后的下表到了数组的位置j, 则有 index[j]=i;
bool containsNearbyDuplicate(int* nums, int numsSize, int k) { int i, j, key; int *index = (int *)malloc(numsSize * sizeof(int)); // store index //memset(index, 0, numsSize * sizeof(int)); for(i = 1; i < numsSize; ++i) { j = i - 1; key = nums[i]; while(j > 0 && nums[j] > key) { nums[j + 1] = nums[j]; // move to back index[j + 1] = index[j]; j--; } //if(j != (i-1)) //{ nums[j + 1] = key; index[j + 1] = i; // map new index to old //} /* check */ if((nums[j] == key) && (i - index[j] <= k)) return true; } free(index); 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
- Plan 7.24-8.25
- POJ 2431:Expedition
- Android 全仿To圈儿个人资料界面层叠淡入淡出显示效果
- session入mysql
- C99布尔类型
- Contains Duplicate II
- Codeforces Round #364 (Div. 2) C 尺取法
- 常用的最完全的正则表达式
- session入redis
- Android渲染器Shader:LinearGradient(一)
- Android6.0的phone应用源码分析(2)——phone相关进程启动分析
- jquery textarea 启用、禁用 判断状态
- git on server(ssh)深入剖析,github提供服务原理
- html表格参考