算法奇妙屋(三十九)-贪心算法学习之路 6

文章目录

一. 力扣 455. 分发饼干

1. 题目解析

饼干s[j] >= 胃口g[i]时, ret++, 求最后ret的最大值

2. 算法原理

3. 代码

java 复制代码
class Solution {
    public int findContentChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int i = 0, j = 0, m = g.length, n = s.length, ret = 0;
        while (i < m && j < n) {
            if (s[j] >= g[i]) {
                j++;
                i++;
                ret++;
            }else {
                j++;
            }
        }
        return ret;
    }
}

二. 力扣 553. 最优除法

1. 题目解析

让我们任意添加括号, 来求最大值


2. 算法原理

题目中nums[i] >= 2, 很关键, 意味着我们可以使用分子最大值的情况, 任意两个数相乘绝对大于原值

3. 代码

java 复制代码
class Solution {
    public String optimalDivision(int[] nums) {
        int n = nums.length;
        StringBuilder ret = new StringBuilder();
        ret.append(nums[0]);
        if (n == 1) {
            return ret.toString();
        }else if (n == 2) {
            ret.append("/");
            ret.append(nums[1]);
            return ret.toString();
        }
        for (int i = 1; i < n; i++) {
            ret.append("/");
            if (i == 1) {
                ret.append("(");
            }
            ret.append(nums[i]);
            if (i == n - 1) {
                ret.append(")");
            }
        }
        return ret.toString();
    }
}
相关推荐
敖正炀几秒前
集合-Map深入分析
java
Hello!!!!!!3 分钟前
C++基础(五)——屏幕和文件输入输出
开发语言·c++·算法
小谢小哥6 分钟前
51-限流算法详解
java·后端·架构
GHL2842710909 分钟前
LangChain学习
学习·ai·langchain
1candobetter9 分钟前
JAVA后端开发——多模块项目重命名体系解析
java·开发语言·intellij-idea
知识分享小能手10 分钟前
ECharts入门学习教程,从入门到精通,综合实战——ECharts电商数据可视化完整知识点+案例代码(8)
学习·信息可视化·echarts
RainCity13 分钟前
Java Swing 自定义组件库分享(二)
java·笔记
Rnan-prince13 分钟前
Count-Min Sketch:海量数据频率统计的“轻量级计数器“
python·算法
程序员老邢15 分钟前
【产品底稿 06】商助慧V1.2实战复盘:Milvus向量库重构+RAG仿写升级+前端SSE排版彻底修复
java·人工智能·经验分享·spring boot·ai·milvus
Bat U16 分钟前
JavaEE|多线程(四)
java·开发语言