zoukankan      html  css  js  c++  java
  • 219. Contains Duplicate II

    第一次尝试用暴力比较法,超时

    public class Solution {
        public boolean containsNearbyDuplicate(int[] nums, int k) {
            int size=nums.length;
            boolean flag=false;
            for(int i=0;i<size-k-1;i++)
            {
                
                int a=nums[i];
                for(int j=i+1;j<=i+k;j++)
                {
                    int b=nums[j];
                    if(a==b)
                    {
                        flag=true;
                        break;
                    }
                }
                if(flag==true)
                    break;
            }
            return flag;
        }
    }

    之后选择用hashmap的方法,节省时间复杂度

    public class Solution {
        public boolean containsNearbyDuplicate(int[] nums, int k) {
            int size=nums.length;
            boolean flag=false;
            Map<Integer,Integer> mp=new HashMap<Integer,Integer>();
            
            for(int i=0;i<size;i++)
            {
                if(mp.containsKey(nums[i]))
                {
                    if((i-mp.get(nums[i]))<=k)
                    {
                       flag=true;
                       break;
                    }
                    else
                        mp.put(nums[i],i);
                }
                else
                    mp.put(nums[i],i);
            }
            return flag;
        }
    }
  • 相关阅读:
    第二十一天作业
    第二十天:继承
    第二十天作业
    第十六天
    第十九天作业
    day53
    day52
    day51
    day50
    day44
  • 原文地址:https://www.cnblogs.com/aguai1992/p/5347279.html
Copyright © 2011-2022 走看看