LeetCode:贪心算法

目录

一、分发饼干

二、摆动序列

三、最大子数组和

四、买卖股票的最佳时机II

五、跳跃游戏

六、跳跃游戏II

七、K次取反后最大化的数组和

八、加油站

九、分发糖果

十、柠檬水找零

十一、根据身高重建队列


一、分发饼干

455. 分发饼干 - 力扣(LeetCode)

class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(s);Arrays.sort(g);int index=s.length-1;//饼干下标int result=0;//可满足的孩子数量for(int i=g.length-1;i>=0;i--){if(index>=0&&s[index]>=g[i]){//饼干的尺寸大于等于孩子的胃口result++;//满足的孩子+1index--;//下标左移}}return result;}
}

二、摆动序列

376. 摆动序列 - 力扣(LeetCode)

class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length<=1)return nums.length;int cur=0;int pre=0;int result=1;for(int i=0;i<nums.length-1;i++){cur=nums[i+1]-nums[i];if((cur>0&&pre<=0)||(cur<0&&pre>=0)){result++;pre=cur;}}return result;}
}

三、最大子数组和

53. 最大子数组和 - 力扣(LeetCode)

class Solution {public int maxSubArray(int[] nums) {int result=Integer.MIN_VALUE;int count=0;for(int i=0;i<nums.length;i++){count+=nums[i];result=Math.max(count,result);if(count<=0)count=0;//相当于重置最大子序列起始位置,因为遇到负数一定是拉低总和}return result;}
}

四、买卖股票的最佳时机II

122. 买卖股票的最佳时机 II - 力扣(LeetCode)

class Solution {public int maxProfit(int[] prices) {int res=0;for(int i=1;i<prices.length;i++){res+=Math.max(prices[i]-prices[i-1],0);//找每日的正利润}return res;}
}

五、跳跃游戏

55. 跳跃游戏 - 力扣(LeetCode)

class Solution {public boolean canJump(int[] nums) {int cover=0;if(nums.length==1)return true;for(int i=0;i<=cover;i++){cover=Math.max(i+nums[i],cover);if(cover>=nums.length-1)return true;}return false;}
}

六、跳跃游戏II

45. 跳跃游戏 II - 力扣(LeetCode)

class Solution {public int jump(int[] nums) {int curcover=0;int nextcover=0;int count=0;if(nums.length==1)return count;for(int i=0;i<=curcover;i++){nextcover=Math.max(i+nums[i],nextcover);if(i==curcover){count++;curcover=nextcover;if(nextcover>=nums.length-1)break;}}return count;}
}

七、K次取反后最大化的数组和

1005. K 次取反后最大化的数组和 - 力扣(LeetCode)

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);int sum=0;for(int i=0;i<nums.length&&k>0;i++){if(nums[i]<0){//找到排序后小于0的值,将它们改为相反数nums[i]=-nums[i];k--;}}if(k%2==1){//若k依旧大于0,且k为奇数,将最小值变为它的相反数Arrays.sort(nums);nums[0]=-nums[0];}for(int num:nums)sum+=num;//求和return sum;}
}

八、加油站

134. 加油站 - 力扣(LeetCode)

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum=0;int totalsum=0;int start=0;for(int i=0;i<gas.length;i++){curSum+=gas[i]-cost[i];totalsum+=gas[i]-cost[i];if(curSum<0){//curSum<0,说明[0,i]不能作为起点,否则会断油start=i+1;curSum=0;}}if(totalsum<0)return -1;return start;}
}

九、分发糖果

135. 分发糖果 - 力扣(LeetCode)

class Solution {public int candy(int[] ratings) {int[] candy=new int[ratings.length];candy[0]=1;for(int i=1;i<ratings.length;i++){if(ratings[i]>ratings[i-1])candy[i]=candy[i-1]+1;else candy[i]=1;}for(int i=ratings.length-1;i>0;i--){if(ratings[i-1]>ratings[i])candy[i-1]=Math.max(candy[i-1],candy[i]+1);}int sum=0;for(int i:candy)sum+=i;return sum;}
}

十、柠檬水找零

860. 柠檬水找零 - 力扣(LeetCode)

class Solution {public boolean lemonadeChange(int[] bills) {int five=0,ten=0,twenty=0;for(int bill:bills){if(bill==5)five++;if(bill==10){if(five<=0)return false;five--;ten++;}if(bill==20){if(five>0&&ten>0){five--;ten--;twenty++;}else if(five>=3){five-=3;twenty++;}else return false;}}return true;}
}

十一、根据身高重建队列

406. 根据身高重建队列 - 力扣(LeetCode)

class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people,(a,b)->{if(a[0]==b[0])return a[1]-b[1];//体重相等则按k值排序,k小在前return b[0]-a[0];//按体重降序排列});LinkedList<int[]> res=new LinkedList<>();for(int[] i:people)res.add(i[1],i);return res.toArray(new int[people.length][]);}
}
/*
举例解释:[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
排序后:[[7,0],[7,1],[6,1],[5,0],[5,2],[4,4]]
结果集:     i    i[1]    res0     0      [7,0]1     1      [7,0],[7,1]2     1      [7,0],[6,1],[7,1]3     0      [5,0],[7,0],[6,1],[7,1]4     2      [5,0],[7,0],[5,2],[6,1],[7,1]5     4      [5,0],[7,0],[5,2],[6,1],[4,4],[7,1]
*//*逆序排序
Arrays.sort(num,new Comparator<Integer>(){public int compare(Integer a, Integer b){return b-a;}
});*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业级 Hosts 自动化管理实战:基于 HTTP 检测的高可用域名解析方案

摘要 本文针对企业级域名解析稳定性需求&#xff0c;提供一套从IP 检测到Hosts 更新的完整自动化解决方案。通过 HTTP 状态码检测、权威 DNS 解析、原子化文件操作等核心技术&#xff0c;结合多行业真实案例&#xff0c;详细阐述方案设计、脚本实现与生产部署&#xff0c;帮助…

基于springboot+vue网页系统的社区义工服务互动平台(源码+论文+讲解+部署+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 在社会文明程度不断提升、社区治理需求持续深化的大背景下&#xff0c;社区义工服务作为…

从细胞工厂到智能制造:Extracellular 用时序数据库 TDengine 打通数据生命线

作为一家位于英国的前沿生物科技公司&#xff0c;Extracellular 专注于细胞培养产品的规模化制造&#xff0c;致力于通过优化生物工艺流程&#xff0c;加速细胞类产品从实验室走向大规模生产的落地。为了实现这一目标&#xff0c;他们需要一个稳定、高效、可扩展的数据平台&…

【NLP 77、Python环境管理工具之conda】

如果你第一万次否定自己&#xff0c;那我希望我可以一万零一次大声称赞你 —— 25.5.22 一、什么是conda conda是一个开源的包管理系统和环境管理系统&#xff0c;主要用于Python语言&#xff0c;但也可以用于其它语言的项目 二、为什么要使用conda ① 多环境共存&#xff0c;多…

【Python 算法零基础 4.排序 ④ 计数排序】

目录 一、引言 二、算法思想 三、算法分析 1.时间复杂度 2.空间复杂度 3.算法的优缺点 Ⅰ、算法的优点 Ⅱ、算法的缺点 四、实战练习 75. 颜色分类 算法与思路 ① 初始化计数数组 ② 统计元素频率 ③ 重构有序数组 1046. 最后一块石头的重量 算法与思路 ① 计数排序 ② 石头碰撞…

PPP 流程已经走到启动阶段并且成功进入了 “STAGE_START_PPP

从您最新的日志来看&#xff0c;PPP 流程已经走到启动阶段并且成功进入了 “STAGE_START_PPP”&#xff0c;但在 “STAGE_WAIT_IP” 阶段没有拿到 IP&#xff0c;约 60 s 后就报了 “Connection lost”&#xff1a; I (11161) modem_board: Modem state STAGE_START_PPP, Succ…

siparmyknife:SIP协议渗透测试的瑞士军刀!全参数详细教程!Kali Linux教程!

简介 SIP Army Knife 是一个模糊测试器&#xff0c;用于搜索跨站点脚本、SQL 注入、日志注入、格式字符串、缓冲区溢出等。 安装 源码安装 通过以下命令来进行克隆项目源码&#xff0c;建议请先提前挂好代理进行克隆。 git clone https://github.com/foreni-packages/sipa…

Phantom 根据图片和文字描述,自动生成一段视频,并且动作、场景等内容会按照文字描述来呈现

Phantom 根据图片和文字描述&#xff0c;自动生成一段视频&#xff0c;并且动作、场景等内容会按照文字描述来呈现 flyfish 视频生成的实践效果展示 Phantom 视频生成的实践 Phantom 视频生成的流程 Phantom 视频生成的命令 Wan2.1 图生视频 支持批量生成 Wan2.1 文生视频 …

OceanBase 系统表查询与元数据查询完全指南

文章目录 一、OceanBase 元数据基础概念1.1 元数据的定义与重要性1.2 OceanBase 元数据分类体系二、系统表查询核心技术2.1 核心系统表详解2.1.1 集群管理表2.1.2 租户资源表2.2 高级查询技巧2.2.1 跨系统表关联查询2.2.2 历史元数据查询三、元数据查询实战应用3.1 日常运维场景…

计算机发展史

计算机发展史 计算的需求在⼈类的历史中是⼴泛存在的&#xff0c;发展⼤体经历了从⼀般计算⼯具到机械计算机到⽬前的电⼦计算机的发展历程。 ⼈类对计算的需求&#xff0c;驱动我们不断的发明、改善计算机。⽬前这个时代是“电⼦计算机”的时代&#xff0c;发展的潮流是&…

GD32 IIC(I2C)通信(使用示例为SD2068)

一、前言 最近需要用到GD32的I2C通信&#xff0c;虽然是第一次做I2C通信&#xff0c;但是GD32完整的标准库有现存的I2C通信示例&#xff0c;虽然示例是EEPROM的通信&#xff0c;但是调用的函数应该是大差不差&#xff0c;所以上手比较简单&#xff0c;这里简单记录一下笔记&…

React从基础入门到高级实战:React 基础入门 - 列表渲染与条件渲染

列表渲染与条件渲染 在 React 开发中&#xff0c;列表渲染 和 条件渲染 是处理动态数据和用户交互的基础技术。通过列表渲染&#xff0c;你可以根据数据动态生成 UI 元素&#xff1b;而条件渲染则让你根据特定条件展示不同的内容。这两个技能在实际项目中非常常见&#xff0c;…

在Java的list.forEach(即 Stream API 的 forEach 方法)中,无法直接使用 continue 或 break 语句的解决办法

说明 在 Java 的 list.forEach&#xff08;即 Stream API 的 forEach 方法&#xff09;中&#xff0c;无法直接使用 continue 或 break 语句&#xff0c;因为它是一个终结操作&#xff08;Terminal Operation&#xff09;&#xff0c;依赖于 Lambda 表达式或方法引用。 有些时…

(7)Spring 6.x 响应式编程模型

Spring 6.x 响应式编程模型 👉 点击展开题目 Spring 6.x中的响应式编程模型与传统的Servlet模型相比有哪些优势?如何实现两者的无缝迁移? 📌 Spring 6.x 响应式编程模型概述 Spring 6.x 中的响应式编程模型基于 Project Reactor 构建,采用非阻塞、事件驱动的架构,通过…

排序和排列——蓝桥杯备考

1.十大排序算法 本次用下面的例题详解这十种排序算法 题目描述 将读入的 N 个数从小到大排序后输出。 输入格式 第一行为一个正整数 N。 第二行包含 N 个空格隔开的正整数 ai​&#xff0c;为你需要进行排序的数。 输出格式 将给定的 N 个数从小到大输出&#xff0c;数之间空格…

C# 高效读取大文件

在 C# 中高效读取大文件时&#xff0c;需根据文件类型和场景选择不同的技术方案&#xff0c;以下为综合实践方法及注意事项&#xff1a; 一、文本文件读取方案 逐行读取 StreamReader.ReadLine‌&#xff1a;通过流式处理逐行加载文本&#xff0c;避免一次性加载整个文件到内…

深度学习模型可视化:Netron的安装和使用

文章目录 Netron简介Netron加载模型类型Netron使用方式Netron功能介绍完整案例总结 Netron简介 Netron是一个支持PyTorch的可视化工具&#xff0c;它的开发者是微软的Lutz Roeder&#xff0c;操作简单快捷&#xff0c;就像保存文件、打开文件一样&#xff0c;简单高效。Netron…

pytorch LSTM 结构详解

最近项目用到了LSTM &#xff0c;但是对LSTM 的输入输出不是很理解&#xff0c;对此&#xff0c;我详细查找了lstm 的资料 import torch.nn as nnclass LSTMModel(nn.Module):def __init__(self, input_size1, hidden_size50, num_layers2):super(LSTMModel, self).__init__()…

AUTOSAR AP 入门0:AUTOSAR_EXP_PlatformDesign.pdf

AUTOSAR AP官网&#xff1a;AUTOSAR Adaptive Platform设计AUTOSAR AP的目的&#xff0c;翻译版官方文档 AUTOSAR_EXP_PlatformDesign.pdf &#xff1a; https://mp.weixin.qq.com/s?__bizMzg2MzAyMDIzMQ&mid2247553050&idx2&sn786c3a1f153acf99b723bf4c9832acaf …

零碳办会新范式!第十届国际贸易发展论坛——生物能源和可持续发展专场,在京举办

2025年5月16日&#xff0c;第十届国际贸易发展论坛在北京国际饭店盛大启幕。本届论坛由北京绿林认证有限公司主办。作为汇聚行业智慧、引领发展方向的盛会&#xff0c;国际贸易发展论坛每两年一届&#xff0c;本次会议是第十届&#xff0c;至今已走过近20年光辉历程。多年来&am…