请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

LeetCode 220 存在重复元素3

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));
    }
}

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

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2018-05-17 21:46:31

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

https://img1.sycdn.imooc.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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信