• 220. Contains Duplicate III


    Given an array of integers, find out whether there are two distinct indices i and j in the array such that the difference between nums[i] and nums[j] is at most t and the difference between i and j is at most k.

    维护一个windon

    treeset:

    ceiling(E e)

    Returns the least element in this set greater than or equal to the given element, or null if there is no such element.
     
    floor(E e)
    Returns the greatest element in this set less than or equal to the given element, or null if there is no such element.
     
    remove(Object o)
    Removes the specified element from this set if it is present.
     
    public class Solution {
        public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
            if(nums.length < 2 || t < 0) return false;
            TreeSet<Integer> set = new TreeSet<Integer>();
            for(int i = 0 ; i < nums.length; i++){
                Integer floor = set.floor(nums[i] + t);
                Integer ceil = set.ceiling(nums[i] - t);
                if(floor != null && floor >= nums[i] || ceil != null && ceil <= nums[i])
                    return true;
                set.add(nums[i]);
                if(i >= k) set.remove(nums[i-k]);
            }
            return false;
        }
    }
  • 相关阅读:
    Loadrunner 参数化&参数化策略&参数化mysql
    Loadrunner 录制脚本注意事项
    Centos7卸载nginx及php、php-fpm方法
    卸载apache
    apache配置
    centOs
    ajax-php跨域请求
    安装php
    apache
    java集合类,HashMap,ArrayList
  • 原文地址:https://www.cnblogs.com/joannacode/p/6132588.html
Copyright © 2020-2023  润新知