美文网首页
贪心算法基础

贪心算法基础

作者: 鱿鱼炸酱面 | 来源:发表于2021-09-24 16:18 被阅读0次
应用场景

所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。

饼干分孩子问题
public static int getCookies(int[] children, int[] cookies) {
        // 将饼干和饥饿度进行排序
        Arrays.sort(children);
        Arrays.sort(cookies);
        // 初始设置饼干的指针和已经吃饱的人数
        int i = 0;
        int j = 0;
        // 按照从小到大的饼干依次尝试能否吃饱饥饿度最低的孩子
        while (i < cookies.length && j < children.length) {
            // 如果当前孩子能够吃饱,则将饼干的指针后移一位
            if (cookies[i++] >= children[j]) {
                j++;
            }
        }
        return j;
    }
去除交叉区间
public static int[][] removeCrossRange(int[][] ranges) {
    // 先将区间列表按每个区间最大值进行排序
    Arrays.sort(ranges, Comparator.comparingInt(o -> o[1]));
    // 初始化列表,添加首个区间
    List<int[]> newRanges = new ArrayList<>();
    newRanges.add(ranges[0]);
    // 设置首个区间的最大值为参考值
    int ref = ranges[0][1];
    // 遍历第二个区间往后的所以区间
    for (int i = 1; i < ranges.length; i++) {
        // 如果当前区间的最小值大于参考值,则说明两个区间没有重复
        if (ranges[i][0] > ref) {
            newRanges.add(ranges[i]);
            // 将参考的区间的最大值提升到替换后的值
            ref = ranges[i][1];
        }
    }
    return newRanges.toArray(new int[0][]);
}
股票最佳收益
public static int bestStockProfits(int[] stocks) {
        int profits = 0;
        for (int i = 0; i < stocks.length - 1; i++) {
            if (stocks[i + 1] > stocks[i]) {
                profits += stocks[i + 1] - stocks[i];
            }
        }
        return profits;
    }

相关文章

  • 程序员算法基础——贪心算法

    程序员算法基础——贪心算法 程序员算法基础——贪心算法

  • GREEDY ALGORITHM

    贪心算法原理 贪心算法以动态规划方法为基础,区别于贪心算法在每一次做出贪心选择后,子问题之一为空,下一步只需继续分...

  • 程序员进阶之算法练习(三十)附基础教程

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 程序员进阶之算法练习(三十二)LeetCode专场

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 程序员进阶之算法练习(三十三)LeetCode专场

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 程序员进阶之算法练习(三十一)

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 29.算法入门

    算法与数据结构基础 一、基础算法思想二分: 递推: 枚举: 递归: 分治: 贪心: 试探: 模拟: 二、简单数据结...

  • 算法基础--贪心策略

    本文主要作为自己的学习笔记,并不具备过多的指导意义。 概述 贪心算法通常用来求解最优问题 由局部最优解到整体最优解...

  • 贪心算法基础

    应用场景 所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。 饼干分孩子问题 去除交叉区间 股票...

  • 高级算法设计与分析

    目录 算法基础 算法复杂性 递归与分治 回溯法与分支限界法 贪心算法 动态规划法 NP问题 概率算法 现代优化算法...

网友评论

      本文标题:贪心算法基础

      本文链接:https://www.haomeiwen.com/subject/byuzgltx.html