可以使用两个循环遍历集合中的每个区间,比较它们是否重复。具体实现可以参考下面的代码:

public static boolean hasDuplicateInterval(List<String> intervals) {
    for (int i = 0; i < intervals.size(); i++) {
        String[] interval1 = intervals.get(i).split("-");
        long start1 = Long.parseLong(interval1[0]);
        long end1 = Long.parseLong(interval1[1]);
        for (int j = i + 1; j < intervals.size(); j++) {
            String[] interval2 = intervals.get(j).split("-");
            long start2 = Long.parseLong(interval2[0]);
            long end2 = Long.parseLong(interval2[1]);
            if ((start1 >= start2 && start1 <= end2) || (end1 >= start2 && end1 <= end2)) {
                // 两个区间有交集,说明存在重复区间
                return true;
            }
        }
    }
    return false;
}

上面的代码中,我们先使用 split 方法将每个区间拆分成开始时间和结束时间,然后将它们转换成 long 类型。接着使用两个嵌套的循环遍历所有的区间,比较它们是否有交集。如果有交集,说明存在重复区间,返回 true。如果所有的区间都没有重复,返回 false

ListString 中存了开始时间-结束时间用java语言比较这个集合中是否存在重复区间

原文地址: https://www.cveoy.top/t/topic/huTl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录