220、存在重複元素Ⅲ(中等)
class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
TreeSet<Long> set = new TreeSet<>();
int len = nums.length;
for (int i = 0; i < len; i++) {
//如果超過視窗大小,就要刪除元素來保證視窗大小不變
if (i > k) {
//從陣列第一個元素開始刪除
set.remove((long) nums[i - k - 1]);
}
//返回視窗中大於等於 nums[i]-t 的最小的數
//x >= nums[i]-t ---> t >= nums[i]-x
//所以應該用ceiling函式而不是用floor函式
Long ceiling = set.ceiling((long) nums[i] - t);
//如果這個最小的數不為空且小於等於 nums[i]+t
//如果最小的數都不滿足<=nums[i]+t,那麼其他數肯定不滿足。
if (ceiling != null && ceiling <= (long) nums[i] + t) {
return true;
}
set.add((long) nums[i]);
}
return false;
}
}
相關文章
- 存在重複元素
- 力扣之存在重複元素力扣
- LeetCode 存在重複元素之JavaScriptLeetCodeJavaScript
- python——集合set不存在重複元素Python
- 有重複元素的全排列
- 技術乾貨:如何判斷一個整數陣列是否存在重複元素......陣列
- java陣列中重複元素的去重Java陣列
- JavaScript 刪除陣列重複元素JavaScript陣列
- 查詢Set中重複的元素
- 961. 重複 N 次的元素
- Remove Duplicate Letters 刪除重複元素REM
- JavaScript陣列刪除重複元素JavaScript陣列
- 使用HashSet<>去除重複元素的集合
- 有重複元素的排列問題
- LeetCode-containsDuplicate-存在重複LeetCodeAI
- PHP陣列去除空白或重複元素PHP陣列
- Java實現-帶重複元素的子集Java
- 如何刪除ArrayList中的重複元素
- Java stream判斷列表是否包含某幾個元素/重複元素Java
- LeetCode26、27 刪重複元素LeetCode
- js刪除陣列中重複的元素JS陣列
- js刪除陣列中的重複元素JS陣列
- javascript刪除陣列重複元素程式碼JavaScript陣列
- 如何去除有序陣列中的重複元素陣列
- 503. 下一個更大元素 II(中等)
- 計蒜客 移除陣列中的重複元素陣列
- 小測試:HashSet可以插入重複的元素嗎?
- ES6刪除字串中重複的元素字串
- 在陣列中找出唯一的重複元素陣列
- JavaScript 拼接多個陣列並刪除重複元素JavaScript陣列
- Java基礎之去除List集合中的重複元素Java
- javascript刪除陣列重複元素程式碼例項JavaScript陣列
- js 的陣列去除重複元素程式碼例項JS陣列
- 演算法提高 11-2刪除重複元素演算法
- js刪除陣列重複元素程式碼例項JS陣列
- javascript去除陣列中重複元素程式碼例項JavaScript陣列
- javascript刪除陣列中的重複元素程式碼JavaScript陣列
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機