`

Contains Duplicate III

阅读更多
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.

题目中给定一个数组,判断数组中是否存在两个数nums[i]和nums[j],它们之间的差最大为t, 两个下标i和j之间的差最大为k。我们用TreeSet来解决,我们维护一个大小为k的treeset,然后通过subSet方法来判断在区间中是否存在和当前元素差小于等于t的元素。为了防止越界,我们将TreeSet设定成长整型。代码如下:
public class Solution {
    public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
        if(nums == null || nums.length == 0 || t < 0) return false;
        TreeSet<Long> set = new TreeSet<Long>();
        set.add((long)nums[0]);
        for(int i = 1; i < nums.length; i++) {
            if(i > k) set.remove((long)nums[i - k - 1]);
            long left = (long)nums[i] - t;
            long right = (long)nums[i] + t;
            if(!set.subSet(left, right + 1).isEmpty()) return true;
            set.add((long)nums[i]);
        }
        return false;
    }
}
0
1
分享到:
评论

相关推荐

    python-leetcode题解之220-Contains-Duplicate-III.py

    本篇内容主要针对LeetCode平台上的一道题“220-Contains-Duplicate-III”的Python解答。 首先,“Contains Duplicate III”是这样一道题:给定一个整数数组,判断在数组中是否存在两个不同的索引i和j,使得abs(nums...

    java-leetcode题解之219-Contains-Duplicate-II

    其中,编号为219的题目“Contains Duplicate II”是一个关于数组和哈希表的经典问题。该题目要求在给定一个整数数组,找出数组中是否含有重复元素,且这些重复元素的下标之差小于或等于k。 针对这个问题,Java编程...

    python-leetcode题解之219-Contains-Duplicate-II.py

    LeetCode上的第219题“Contains Duplicate II”正是针对这一问题的编程挑战。该问题要求编写一个函数,检测在一个数组中,是否至少存在一对索引`i`和`j`,满足`i`不等于`j`且`nums[i]`等于`nums[j]`,同时这些索引...

    python-leetcode题解之217-Contains-Duplicate.py

    Python实现leetcode题解之217. 存在重复元素 leetcode中的217题要求实现一个算法,判断给定的整数数组中是否存在重复元素。具体来说,该算法需要返回一个布尔值,若数组中有重复的元素,则返回True,否则返回False。...

    kl.zip_KL熵_相对熵_相对熵 kl_相对熵KL_真实熵

    信息熵,是随机变量或整个系统的不确定性。熵越大,随机变量或系统的不确定性就越大。 相对熵,用来衡量两个取值为正的函数或概率分布之间的差异。 交叉熵,用来衡量在给定的真实分布下,使用非真实分布所指定的策略...

    leetcode下载-algorithm_practise:算法实践

    duplicate(滑动窗口), 454. 4sum 数组 leetcode: 基本排序算法 插入, 归并 -&gt; 递归 和 迭代 快排 -&gt; 随机 三路 leetcode75 数组遍历的为了减少时间复杂的的方法 对撞指针 leetcode: 167 two sum, 125回文串, 344 ...

    gasstationleetcode-leetcode_java:为求职做准备。Leetcode的java版本

    加油站 leetcode leetcode_java prepare for jobhunting. java version of Leetcode. easy 55 about takes ...4.Contains Duplicate II 5.Contains Duplicate 07/02/2015 1.Valid Parentheses 2.Maximum

    repository-beta:BETA-家庭助理社区附加组件

    BETA-家庭助理社区附加组件 警告! 这是一个测试版存储库 此Home Assistant加载项存储库包含加载项的beta版本。 他们可能会随时停止工作。 它们可能会对您的系统产生负面影响。 该存储库是为以下目的创建的: ...

    Leetcode的ac是什么意思-LeetCodeInJava:leetcode-java

    #217 Contains Duplicate #226 Invert Binary Tree #237 Delete Node in a Linked List #238 Product of Array Except Self #242 Valid Anagram #258 Add Digits #260 Single Number III #274 H-Index #283 Move ...

    javalruleetcode-leetcode-java:力码笔记

    java lru leetcode leetcode-java leetcode刷题笔记 已做题目列表 1.Two Sum 3.Longest Substring Without Repeating Characters ...III ...217.Contains Duplicate 263.Ugly Number 264.Ugly Number II

    leetcode浇花-LCSolutions:我的力扣解决方案

    leetcode 浇花力扣解决方案 简单的 #0001 - Two Sum #0007 - Reverse Integer ...Contains Duplicate #0242 - Valid Anagram #0243 - Shortest Word Distance #0246 - Strobogrammatic Number #0263 -

    leetcode1004-leetcode:leetcode

    Contains Duplicate (E) 48. Rotate Image (M) -&gt; 2 73. Set Matrix Zeroes (M) 1. Two Sum (E) 167. Two Sum II - Input array is sorted (E) 653. Two Sum IV - Input is a BST (E) -&gt; 2 26. Remove Duplicates ...

    winutilities

    this suite contains utilities to clean registry, temporary files on your disks, erase your application and internet browser history, cache and cookies. you can control startup programs that load ...

    基于DSP设计的数字化大功率电源数字化全桥变换器电源ALTIUM设计硬件原理图+PCB文件.rar

    0603rl - duplicate 0805-100V 0805CL 0805cl - duplicate 0805RL 1206 1206CL 1206RL 1210 1812 2512 3225[1210] 6332[2512] BR_RS25XX C822j823聚丙烯 CAP3 CAP11-8 CAP22.5*10 CD1 CD1B CD1S CD2 CD2.5-6.3 CY1 ...

    判断链表是否为回文链表leetcode-Algos_Practice:来自Leetcode、HackerRank等网站的练习题

    “contains_duplicate.py” - 检查整数列表是否包含任何重复项的快速算法。 “contains_nearby_duplicate.py” - 检查整数列表是否包含距离 k 内的任何重复项的快速算法。 "coin_arrangement.py" - 给定 n,算法找到...

    手稿_V1.111

    《手稿_V1.111》探讨了一个在C++编程环境下解决LeetCode中的数据结构问题,具体题目是“Contains Duplicate II”。这个问题涉及到数组、滑动窗口和哈希映射等概念,要求在给定整数数组`nums`和一个整数`k`的情况下,...

    python-leetcode面试题解之第217题存在重复元素-题解.zip

    题目217——存在重复元素(Contains Duplicate): 这道题目要求我们检查给定的整数数组`nums`中是否存在重复的元素。如果存在重复元素,函数应返回`true`,否则返回`false`。 **解决方案一:哈希表(Hash Table)*...

    ray hashmap.pdf

    - **Contains Duplicate**:检查数组中是否存在重复的元素。哈希表可以用于跟踪已遇到的元素。 - **Jewels and Stones**:计算在给定的字符集合(jewels)中,有多少字符出现在另一个字符集合(stones)中。哈希表...

    leetcode答案-code_challenges:代码挑战

    leetcode 答案Leet Code 挑战 这是我提交给 Lambda School CS Unit 2 构建周的已接受 ...Duplicates](https://leetcode.com/problems/contains-duplicate/) [x] [Linked List Cycle II](https://leetcode.co

Global site tag (gtag.js) - Google Analytics