219. Contains Duplicate II
Posted 阿怪123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; } }
以上是关于219. Contains Duplicate II的主要内容,如果未能解决你的问题,请参考以下文章