LeetCode Contains Duplicate III

”这样的限定的题目我们可以考虑维护一个长度为k的滑动窗口。第三,如果用Integer类型,这题有个test case会使得nums[i] + t + 1溢出变成负数,因此需要使用Long类型来保存数,,要注意类型转换。

AC Code

import java.util.SortedSet; // the return value of subset is SortedSet(Interface) typepublic class Solution {public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {//1018if(nums == null || nums.length < 2 || k < 1 || t < 0) return false; // t is at least 0, k is at least 1SortedSet<Long> windowNumSet = new TreeSet<Long>();for(int i = 0; i < nums.length; i++){SortedSet<Long> set = windowNumSet.subSet((long)nums[i]-t, (long)nums[i] + t + 1);if(!set.isEmpty()) return true;if(i >= k) windowNumSet.remove((long)nums[i-k]);windowNumSet.add((long)nums[i]);}return false;//1026}}

未曾失败的人恐怕也未曾成功过。

LeetCode Contains Duplicate III

相关文章:

你感兴趣的文章:

标签云: