LeetCode 219. Contains Duplicate II(C++版)
来源:互联网 发布:淘宝如何申请二次售后 编辑:程序博客网 时间:2024/05/21 06:54
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.
思路分析:
也就是说,有两个要求,i - j <= k && nums[i] == nums[j]
遍历数组,查找i和i+k是否相等
时间复杂度:O(n^2)
class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { if(k <= 0) return false; if(nums.size() == 0 || nums.size() == 1 ) return false; for(int i = 0; i < nums.size(); i ++){ for(int j = i + 1; j - i <= k && j < nums.size(); j ++ ) if(nums[i] == nums[j]) return true; } return false; }};
结果超时。
方法二:
遍历数组,如果nums[ i ]已经在map中,判断其value和i的距离是否小于等于k,是,则返回true。否,则将nums[i]对应的value修改为当前的 i 值。
class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { if(k <= 0) return false; if(nums.size() == 0 || nums.size() == 1) return false; //如果nums[ i ]已经在map中,判断其value和i的距离是否小于等于k,是,则返回true。否,则将nums[i]对应的value修改为当前的i值 unordered_map<int, int> cpnums; for(int i = 0; i < nums.size(); i ++){ if(cpnums.find(nums[i]) == cpnums.end()) cpnums.insert({nums[i], i}); else{ if(i - cpnums[ nums[i]] <= k) return true; else cpnums[nums[i]] = i; } } return false; }};
通过。
1 0
- [leetcode-219]Contains Duplicate II(C)
- 【leetcode】219. Contains Duplicate II(Python & C++)
- Leetcode:219. Contains Duplicate II(JAVA)
- LeetCode 219. Contains Duplicate II(C++版)
- [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
- 219. Contains Duplicate II LeetCode
- 【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
- 219.[Leetcode]Contains Duplicate II
- 4.3、字符串
- [译]Java定时任务调度-Quartz文档(十一)Advanced (Enterprise) Features
- BZOJ 3958: [WF2011]Mummy Madness
- ssh反向代理功能
- hbase split策略
- LeetCode 219. Contains Duplicate II(C++版)
- Java判断一个字符串为数字(正负、小数)
- Linux安装应用时需要考虑时区问题并修改时区
- Set List 没有声明保存
- ViewPager嵌套fragment简单使用
- 欢迎使用CSDN-markdown编辑器
- bzoj3996 [TJOI2015]线性代数
- CardView使用详解
- LeetCode 题解(Week 5):502. IPO