标签:nbsp rac dup diff and treeset object between javase
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:
null
if there is no such element.floor(E e)
null
if there is no such element.remove(Object o)
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; } }
标签:nbsp rac dup diff and treeset object between javase
原文地址:http://www.cnblogs.com/joannacode/p/6132588.html