贪心算法-解决区间问题

简介: 贪心算法-解决区间问题

在这里插入图片描述

👨🏻‍🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟
🌈擅长领域:Java、大数据、运维、电子
🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!
🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!

@[TOC]

贪心算法

  见名知意,就是贪心,在对一个问题进行求解的时候,将求解的过程划分为若干个单元,秉着贪心的思想,即在这划分的每一个单元内取最优解,每一步都是最优解,可想而知最后堆砌出来的也是最优的解,主体思想不看远方不切实际的,活好当下,力求每一都最好,当然最后的结果也基本是好的。

区间问题

  输入是一个数组,数组由多个长度固定为2的数组组成,表示区间的开始和结尾,输出一个整数,表示需要移除的区间数量。

Input:[[1,2],[2,4],[1,3]]
Output: 1

题目图解

在这里插入图片描述

Java代码实现

/**
 * <p>
 * 区间问题
 *
 * @author 芝士味的椒盐
 * @since 2022/2/6
 */
public class Solution {
    public static void main(String[] args) {
        int[][] inputs = {{1,2},{2,4},{1,3}};
//        总定义比较从小到大
        Arrays.sort(inputs, Comparator.comparingInt(o -> o[1]));
        int rmCount = 0;
//        拿第一个作为初始的比较
        int initCur = inputs[0][1];
        for (int i = 1 ; i < inputs.length; i++){
            if (inputs[i][0]>=initCur){
                initCur = inputs[i][1];
            } else{
                rmCount++;
            }
        }
        System.out.println(rmCount);
    }
}
相关文章
|
8天前
|
算法 测试技术 C#
C++二分查找算法:包含每个查询的最小区间
C++二分查找算法:包含每个查询的最小区间
|
8天前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
19 0
|
6月前
|
存储 算法 C++
C++基础算法离散化及区间合并篇
C++基础算法离散化及区间合并篇
|
2天前
|
存储 机器学习/深度学习 人工智能
【算法基础】基础算法(三)--(双指针算法、位运算、离散化、区间合并)
【算法基础】基础算法(三)--(双指针算法、位运算、离散化、区间合并)
|
8天前
|
人工智能 算法
前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)
前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)
|
8天前
|
算法 测试技术 C#
【map】【滑动窗口】C++算法:最小区间
【map】【滑动窗口】C++算法:最小区间
|
8天前
|
存储 算法 索引
算法题解-汇总区间
算法题解-汇总区间
|
8天前
|
算法 测试技术 C++
C++二分查找算法:包含每个查询的最小区间
C++二分查找算法:包含每个查询的最小区间
|
8天前
|
算法 Java
算法编程(十八):汇总区间
算法编程(十八):汇总区间
35 0
|
8天前
|
算法 程序员
【算法训练-链表 一】【反转链表】反转链表、区间反转链表、K个一组反转链表
【算法训练-链表 一】【反转链表】反转链表、区间反转链表、K个一组反转链表
31 0