标签:
第一次尝试用暴力比较法,超时
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; } }
标签:
原文地址:http://www.cnblogs.com/aguai1992/p/5347279.html