算法 *-* 区间问题

回到顶部(go to top)

总结

1.画图,画图,画图。直观观察规律

2.排序,排序,排序。按照起点/终点排序,或者混合排序。

复制代码
        int[][] points = new int[][]{{1,2},{1,4},{10,18},{7,11},{3,6}};

        // 按照起点升序排列;起点相同时,终点按照降序排列
        Arrays.sort(points, new Comparator<int[]>(){
            @Override
            public int compare(int[] a,int[] b){
                if(a[0] == b[0]){
                    return b[1] - a[1];
                }
                return a[0] - b[0];
            }
        });
        
        //排序后,points变成 [[1,4],[1,2],[3,6],[7,11],[10,18]]
复制代码

 

3.什么情况下要“起点升序排序,(起点相同时)终点降序排序?”

当你需要“消除”重叠区间时,“起点升序排序,(起点相同时)终点升序排序”。详看文章

 

 

当你需要“覆盖”区间时,“起点升序排序,(起点相同时)终点降序排序”。详看文章

 

 

4.通解通法来讲,什么时候区间序列要按照“起点排序”?什么时候按照“终点排序”? -- 按道理说,两种排序都可以,可以在实际问题中进行尝试。

 

回到顶部(go to top)

区间相关题目

一文秒杀所有区间相关问题

贪心算法之区间调度问题

 

posted on   frank_cui  阅读(122)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-12-30 Java 基础 - Comparable和Comparator接口区别
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

levels of contents
点击右上角即可分享
微信分享提示