leetcode 220. Contains Duplicate III---java
2018-02-23 23:34
316 查看
题目:
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i]and nums[j] is at most t and the absolute difference between i and j is at most k.
给出一个整形数组nums,是否存在索引i和j,使得nums[i],nums[j]之间的差不超过给定的整数值t,且i和j之间的差不超过k。
思路:
参照219题,另需注意:1.判断t的取值,不允许<0;2.nums[j]的取值范围为nums[i] - t ~nums[i] + t;可以利用SortedSet中的subSet方法。
程序:
class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
TreeSet <Long>record = new TreeSet<Long>();
SortedSet <Long>sort = new TreeSet<Long>();
if(t < 0)
return false;
for(int i = 0; i < nums.length; i++){
sort = record.subSet((long)nums[i]-(long)t, (long)nums[i]+(long)t+(long)1);
if(!sort.isEmpty())
return true;
record.add((long)nums[i]);
if(record.size() >= k+1 )
record.remove((long)nums[i-k]);
}
return false;
}
}
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i]and nums[j] is at most t and the absolute difference between i and j is at most k.
给出一个整形数组nums,是否存在索引i和j,使得nums[i],nums[j]之间的差不超过给定的整数值t,且i和j之间的差不超过k。
思路:
参照219题,另需注意:1.判断t的取值,不允许<0;2.nums[j]的取值范围为nums[i] - t ~nums[i] + t;可以利用SortedSet中的subSet方法。
程序:
class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
TreeSet <Long>record = new TreeSet<Long>();
SortedSet <Long>sort = new TreeSet<Long>();
if(t < 0)
return false;
for(int i = 0; i < nums.length; i++){
sort = record.subSet((long)nums[i]-(long)t, (long)nums[i]+(long)t+(long)1);
if(!sort.isEmpty())
return true;
record.add((long)nums[i]);
if(record.size() >= k+1 )
record.remove((long)nums[i-k]);
}
return false;
}
}
相关文章推荐
- Java for LeetCode 220 Contains Duplicate III
- leetcode 220. Contains Duplicate III
- [LeetCode]220. Contains Duplicate III
- Leetcode-220. Contains Duplicate III
- 【C++】leetcode 220. Contains Duplicate III
- [LeetCode]--220. Contains Duplicate III--(Binary Search Tree)
- leetcode 220. Contains Duplicate III
- [LeetCode][Java]Contains Duplicate III
- LeetCode 220. Contains Duplicate III
- Leetcode 220. Contains Duplicate III
- leetcode 220. Contains Duplicate III
- leetcode 220: Contains Duplicate III Java
- LeetCode 220. Contains Duplicate III(检查重复)
- Leetcode 220. Contains Duplicate III
- LeetCode – Remove Duplicates from Sorted List III (Java)
- leetcode 220. Contains Duplicate III
- [LeetCode] 220. Contains Duplicate III 包含重复元素 III
- (leetcode)contains duplicateIII[java]
- LeetCode 220. Contains Duplicate III
- Leetcode 220. Contains Duplicate III (Medium) (cpp)