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
- LeetCode-containsDuplicate-存在重複LeetCodeAI
- 有重複元素的全排列
- 技術乾貨:如何判斷一個整數陣列是否存在重複元素......陣列
- java陣列中重複元素的去重Java陣列
- JavaScript陣列刪除重複元素JavaScript陣列
- 查詢Set中重複的元素
- JavaScript 刪除陣列重複元素JavaScript陣列
- 961. 重複 N 次的元素
- Remove Duplicate Letters 刪除重複元素REM
- LeetCode26、27 刪重複元素LeetCode
- PHP陣列去除空白或重複元素PHP陣列
- Java stream判斷列表是否包含某幾個元素/重複元素Java
- 如何去除有序陣列中的重複元素陣列
- 小測試:HashSet可以插入重複的元素嗎?
- 計蒜客 移除陣列中的重複元素陣列
- ES6刪除字串中重複的元素字串
- 503. 下一個更大元素 II(中等)
- LeetCode每日一題:重複 N 次的元素(No.961)LeetCode每日一題
- JavaScript 拼接多個陣列並刪除重複元素JavaScript陣列
- Java基礎之去除List集合中的重複元素Java
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機
- Java之ArrayList去除重複元素(包括字串和自定義物件)Java字串物件
- 好程式設計師分享HashSet實現去除重複元素程式設計師
- JS 不使用 for forEach 獲取兩陣列中重複的元素JS陣列
- leetcode-刪除排序陣列中的重複項+移除元素LeetCode排序陣列
- sample, choices: 從list中隨機選擇無重複的元素隨機
- 220
- 力扣-83. 刪除排序連結串列中的重複元素力扣排序
- 83. 刪除排序連結串列中的重複元素(JavaScript版)排序JavaScript
- PHP陣列學習之怎麼去除空白或者重複的元素PHP陣列
- leetcode-82:刪除排序連結串列中重複的元素-iiLeetCode排序
- 重複
- python列表中是否存在某個元素Python
- XSD 複合元素概述