LeetCode 220 存在重复元素3

来源:7-1 集合基础和基于二分搜索树的集合实现

StephenLee147

2018-05-17

import java.util.SortedSet;
import java.util.TreeSet;

public class Solution_220 {
    public static boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
        if(nums == null || k < 0 || t < 0 || nums.length < 2){
            return false;
        }
        SortedSet<Integer> set = new TreeSet<>();
        for (int i = 0; i < nums.length; i++) {
            SortedSet<Integer> subset = set.subSet(nums[i]-t, nums[i]+t+1);
            if(!subset.isEmpty()){
                return true;
            }
            if(i > k -1){
                set.remove(nums[i-k]);
            }
            set.add(nums[i]);
        }

        return false;
    }
    public static void main(String[] args) {
       int[] nums = {1,2,3,1};
        System.out.println(containsNearbyAlmostDuplicate(nums,4,0));
    }
}

自已验证没有问题,提交后一直报错,请老师看看。

写回答

1回答

liuyubobobo

2018-05-17

在leetcode中,如果提交以后出现错误,leetcode会告诉你出错的测试用例。比如我在leetcode上测试了你的程序,返回结果是这样的:

//img.mukewang.com/szimg/5afd870e00015ddd11740377.jpg


注意我高亮的部分,就是产生错误的测试用例。所以可以在本地试一下main函数中使用这样的测试用例?

public static void main(String[] args) {
    int[] nums = {0, 2147483647};
    System.out.println(containsNearbyAlmostDuplicate(nums, 1, 2147483647));
}


看看是不是在本地测试也有问题了?仔细查查问题在哪里?


如果需要,可以参考我给出的Solution:)


传送门:https://github.com/liuyubobobo/Play-Leetcode/tree/master/0220-Contains-Duplicate-III/java-0220/src


加油!

1
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程