可以通过遍历集合中的每个区间,并将其转换为起始时间和结束时间的形式,然后检查是否存在重叠区间。以下是一个Java示例代码:

public boolean hasDuplicateIntervals(List<String> intervals) {
    List<Pair<Integer, Integer>> pairs = new ArrayList<>();

    // 将每个区间转换为起始时间和结束时间的形式,并存储到Pair中
    for (String interval : intervals) {
        String[] times = interval.split("-");
        int start = Integer.parseInt(times[0]);
        int end = Integer.parseInt(times[1]);
        pairs.add(new Pair<>(start, end));
    }

    // 检查是否存在重叠区间
    for (int i = 0; i < pairs.size(); i++) {
        for (int j = i + 1; j < pairs.size(); j++) {
            Pair<Integer, Integer> p1 = pairs.get(i);
            Pair<Integer, Integer> p2 = pairs.get(j);
            if (p1.first < p2.second && p2.first < p1.second) {
                return true; // 存在重叠区间
            }
        }
    }

    return false; // 不存在重叠区间
}

该方法将List中的每个区间转换为Pair<Integer, Integer>对象,并使用两个嵌套的循环遍历这些对象,以检查是否存在任何重叠区间。如果找到重叠区间,则返回true,否则返回false

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

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

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