zoukankan      html  css  js  c++  java
  • 219. 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.

    答案:

    前一题的升级版,多加了一个条件,即相同元素的下标值距离不超过k,这里用map来求解。最开始我写插入时直接用的insert,但因为insert只能插入map中不存在的元素,所以这里不能用insert。

     1 class Solution {
     2 public:
     3     bool containsNearbyDuplicate(vector<int>& nums, int k) {
     4         int n=nums.size();
     5         if(n<2){
     6            return false;
     7         }
     8         map<int,int>temp;
     9         for(int i=0;i<n;i++){
    10             if(temp.find(nums[i])!=temp.end()&&i-temp[nums[i]]<=k){
    11                 return true;
    12             }
    13         else{
    14             temp[nums[i]]=i;
    15         }
    16     }
    17         return false;
    18     }
    19 };
  • 相关阅读:
    常用源代码管理工具与开发工具
    项目发布
    学期总结
    个人博客
    个人博客
    阅读笔记6
    阅读笔记5
    阅读笔记4
    团队代码
    团队代码
  • 原文地址:https://www.cnblogs.com/Reindeer/p/5655798.html
Copyright © 2011-2022 走看看