leetcode 219: Contains Duplicate II
来源:互联网 发布:知乎中文夹杂英文 编辑:程序博客网 时间:2024/06/14 12:59
解题思路:
遍历数组,把所有相同的数的下标都存储起来,然后对每个单独的数,计算其是否存在两个下标值小于k
原题目:
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.
AC解,C++代码,不过运行速度很慢,菜鸟一个,希望大家多多指正
class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { map<int, int> value_index; vector<vector<int>> index; int ii = 0; //the index of index(vector) for (int i = 0; i < nums.size(); i++) { if(value_index.count(nums[i])) { index[value_index[nums[i]]].push_back(i); } else { vector<int> tuple; tuple.push_back(i); index.push_back(tuple); value_index.insert(map<int, int>::value_type(nums[i], ii)); ii++; } } for (int ii = 0; ii < index.size(); ii++) { for(int j = 1; j < index[ii].size(); j++) { if (index[ii][j] - index[ii][j - 1] <= k) { return true; } } } return false; }};
0 0
- leetcode 219: Contains Duplicate II
- LeetCode 219:Contains Duplicate II
- Contains Duplicate II - LeetCode 219
- Leetcode[219]-Contains Duplicate II
- LeetCode 219 Contains Duplicate II
- Leetcode 219 Contains Duplicate II
- 【Leetcode】Contains Duplicate II #219
- Leetcode 219 Contains Duplicate II
- leetcode 219:Contains Duplicate II
- LeetCode 219: Contains Duplicate II
- leetcode: (219) Contains Duplicate II
- leetcode 219: Contains Duplicate II
- [Leetcode]#219 Contains Duplicate II
- [LeetCode 219] Contains Duplicate II
- [leetcode 219] Contains Duplicate II
- 【LEETCODE】219-Contains Duplicate II
- 【LeetCode】219Contains Duplicate II
- LeetCode 219 Contains Duplicate II
- 文本模式/二进制模式 && 文本文件/二进制文件(编码系列-3)
- NMEA GPRMC 格式图解,NMEA 工具的比较
- Mac显示隐藏文件
- 439. Ternary Expression Parser
- android service详解
- leetcode 219: Contains Duplicate II
- java知识体系整理
- android broadcast详解
- 228. Summary Ranges
- 高性能服务器架构思路(四)——编码复杂度和通信
- 十分钟搞定酷炫动画,Android自定义 View 入门
- 8086汇编贪吃蛇(随机食物+速度递增)
- Mybatis参数为对象中包含list情况处理
- 获取SpringMVC中所有RequestMapping映射URL地址