【LeetCode 刷题】贪心算法(1)-基础

此博客为《代码随想录》二叉树章节的学习笔记,主要内容为贪心算法基础的相关题目解析。

文章目录

455.分发饼干

题目链接

python 复制代码
class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        g.sort()
        s.sort()
        i = 0
        for x in s:
            if i < len(g) and g[i] <= x:
                i += 1
        return i
  • 饼干和胃口数组都从小到大排序,最小的饼干应该给当前满足的胃口最小的孩子,如果不给则会浪费分发机会,无法取得最优解
  • 指针 i 标识当前满足到第 i 个孩子;完整遍历饼干列表,按照孩子胃口从小到达依次尝试去满足,最后直接返回 i 即为已经满足的孩子数量

1005.K次取反后最大化的数组和

题目链接

python 复制代码
class Solution:
    def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:
        nums.sort()
        min_num, res = +inf, 0
        for num in nums:
            min_num = min(min_num, abs(num))
            if num < 0 and k > 0:
                res -= num
                k -= 1
            else:
                res += num
        if k and k % 2 != 0:
            return res - 2 * min_num
        else:
            return res
  • 首先把负数从小到大仅可能反转为正数,如果反转所有负数后 k > 0,则后序反转只针对最小的元素
  • 在遍历过程中反转负数同时记录最小元素,如果遍历结束后 k > 0k 为奇数,则把最小的元素反转,反之则直接返回答案

860.柠檬水找零

题目链接

python 复制代码
class Solution:
    def lemonadeChange(self, bills: List[int]) -> bool:
        five = ten = 0
        for b in bills:
            if b == 5:
                five += 1
            elif b == 10:
                five -= 1
                ten += 1
            else:
                if ten:
                    ten -= 1
                    five -= 1
                else:
                    five -= 3
            if five < 0:
                return False
        return True
  • 分类讨论,贪心准则为优先使用十元找零,之后再使用五元
相关推荐
Shepherdppz14 分钟前
python量化交易——金融数据管理最佳实践——使用qteasy大批量自动拉取金融数据
python·金融·量化交易
互联网杂货铺32 分钟前
python+pytest 接口自动化测试:参数关联
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
筱涵哥37 分钟前
Python默认参数详细教程:默认参数位置错误,动态默认值,__defaults__属性,动态默认值处理,从入门到实战的保姆级教程
开发语言·python
一只大侠43 分钟前
牛客周赛A:84:JAVA
算法
yzztin1 小时前
Python 导包和依赖路径问题
python
pk_xz1234561 小时前
介绍如何基于现有的可运行STGCN(Spatial-Temporal Graph Convolutional Network)模型代码进行交通流预测的改动
python
豆豆酱1 小时前
Informer方法论详解
算法
用户8134411823611 小时前
Python基础
python
槐月初叁1 小时前
多模态推荐系统指标总结
算法
迪小莫学AI1 小时前
LeetCode 2588: 统计美丽子数组数目
算法·leetcode·职场和发展