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

devtools/2025/2/7 11:52:29/

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

文章目录

  • 455.分发饼干
  • 1005.K次取反后最大化的数组和
  • 860.柠檬水找零

455.分发饼干

题目链接

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

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

题目链接

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

860.柠檬水找零

题目链接

python">class Solution:def lemonadeChange(self, bills: List[int]) -> bool:five = ten = 0for b in bills:if b == 5:five += 1elif b == 10:five -= 1ten += 1else:if ten:ten -= 1five -= 1else:five -= 3if five < 0:return Falsereturn True
  • 分类讨论,贪心准则为优先使用十元找零,之后再使用五元

http://www.ppmy.cn/devtools/156795.html

相关文章

央行发布《贸易金融分布式账本技术要求》,参考架构包括5部分

《银行科技研究社》(作者 木子剑):2024年12月11日,中国人民银行发布金融行业标准《贸易金融分布式账本技术要求》(JR/T 0308-2024)(以下简称“《要求》”),当日实施。据悉,该文件的起草单位包括6大行和多家股份制银行等。 《要求》规定了分布式账本技术在贸易金融领域…

Hive自定义函数简介及实践案例

摘要: Hive自定义函数简介及实践 关键词: 大数据、Hive、自定义函数 整体说明 从自定义函数的简介,到自定义函数的使用类型分类和使用周期分类,以及每种自定义函数的实践案例,解决具体的需求,简单图示如下: 一、简介 允许用户扩展 Hive 的功能,以实现特定的数据处…

java 网络安全感知 网络安全学java

实验内容 1&#xff0e;掌握Socket程序的编写&#xff1b;2&#xff0e;掌握密码技术的使用&#xff1b;3&#xff0e;设计安全传输系统。 实验步骤 我的结对伙伴是宋歌,我负责的是客户端的部分。1、首先通过在对方的命令行中输入ipconfig得到服务器的ip地址。2、建立一个Soc…

力扣-字符串-344 反转字符串

思路 原地逆置&#xff0c;想到利用left和right 代码 class Solution { public:void reverseString(vector<char>& s) {int left 0, right s.size() - 1;while(left < right){char temp;temp s[left];s[left] s[right];s[right] temp; left;right--;}} };…

用pytorch实现一个简单的图片预测类别

前言&#xff1a; 在阅读本文之前&#xff0c;你需要了解Python&#xff0c;Pytorch&#xff0c;神经网络的一些基础知识&#xff0c;比如什么是数据集&#xff0c;什么是张量&#xff0c;什么是神经网络&#xff0c;如何简单使用tensorboard,DataLoader。 本次模型训练使用的是…

Sui 年度展望:2025 是走向主流的一年,将 Sui 打造成体验最友好的平台

作者&#xff1a;Adeniyi.sui 编译&#xff1a;深潮 TechFlow Mysten Labs 正与 CarnegieMellon &#xff08;卡内基梅隆大学&#xff09;的研究人员紧密合作&#xff0c;共同开发和优化可编程的点对点 (P2P) 隧道。这项技术将为区块链的应用场景带来更多可能性。 展望 2025…

3. k8s二进制集群之负载均衡器高可用部署

Haproxy 和 Keepalived安装Haproxy配置文件准备Keepalived配置及健康检查启动Haproxy & Keepalived服务继续上一篇文章《K8S集群架构及主机准备》,下面介绍负载均衡器搭建过程 Haproxy 和 Keepalived安装 在负载均衡器两个主机上安装即可 apt install haproxy keepalived…

vue 弹窗 模板

<template><el-dialogtitle"选择批号":visible.sync"showFlag"width"800px"append-to-body:destroy-on-close"true"open"handleOpen"><el-form :model"queryParams" ref"queryForm" :in…