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 absolute difference between i and j is at most k.

    我的答案:

    class Solution {
        public boolean containsNearbyDuplicate(int[] nums, int k) {
            Map<Integer, Integer> map = new HashMap<>();
    		for (int i = 0; i < nums.length; i++) {
    			Integer integer = map.get(nums[i]);
    			if(integer == null){
    				map.put(nums[i], i);
    			}else{
    				int value = i-integer;
    				if(value<=k){
    					return true;
    				}
    				map.put(nums[i], i);
    			}
    		}
    		return false;
        }
    }
    

    大神的答案:

    public boolean containsNearbyDuplicate(int[] nums, int k) {
            Set<Integer> set = new HashSet<Integer>();
            for(int i = 0; i < nums.length; i++){
                if(i > k) set.remove(nums[i-k-1]);
                if(!set.add(nums[i])) return true;
            }
            return false;
     }
    
  • 相关阅读:
    人 生 死 梦
    接口(三):
    接口(二):
    Mac下OpenCV开发环境配置(Terminal和Xcode)
    OcLint的使用
    分类Category的概念和使用流程
    @class
    内存管理
    点语法
    多态的概念和用法
  • 原文地址:https://www.cnblogs.com/luozhiyun/p/8352488.html
Copyright © 2011-2022 走看看