代码随想录算法训练营第三十二天| 122.买卖股票的最佳时机II , 55. 跳跃游戏, 45.跳跃游戏II

题目与题解

122.买卖股票的最佳时机II

题目链接:122.买卖股票的最佳时机II

代码随想录题解:122.买卖股票的最佳时机II

视频讲解:贪心算法也能解决股票问题!LeetCode:122.买卖股票最佳时机II_哔哩哔哩_bilibili

解题思路:

        这题之前做过,所以思路记住了,第一次估计比较难想。

        把股票的趋势图画出来,会得到一个有起伏的折线,如果每次都能在波谷买进,波峰卖出,收益必然最大。这个过程又可以分解到每一天,只要第二天的收益比第一天多,就可以第一天买进第二天卖出,即使连涨几天,比如第一天买进,波峰在第四天,那么第一天买进第四天卖出,和第一天买,第二天卖,第二天买,第三天卖,第三天买,第四天卖的结果是一样的。 所以只要判断数组的后一个元素比前一个元素大,就可以把nums[i] - nums[i-1]加入profit。

class Solution {public int maxProfit(int[] prices) {if (prices.length < 2) return 0;int profit = 0;for (int i = 1; i < prices.length; i++) {int diff = prices[i] - prices[i-1];if (diff > 0) profit += diff;}return profit;}
}

看完代码随想录之后的想法 

        这题贪心思路就这一种,写法上可以用profit += Math.max(0, prices[i]-prices[i-1])替代遍历的内容。

遇到的困难

        无

55. 跳跃游戏

题目链接:​​​​​​​55. 跳跃游戏

代码随想录题解:55. 跳跃游戏

视频讲解:贪心算法,怎么跳跃不重要,关键在覆盖范围 | LeetCode:55.跳跃游戏_哔哩哔哩_bilibili

解题思路:

        自己写越写越乱,贪心基本是想到就是想到,想不到再怎么修补也不对。

看完代码随想录之后的想法 

        很巧妙的方法,一边遍历一边更新可遍历的最大范围,直到遍历的最大范围达到数组上限,则为true。如果遍历结束后最大范围仍未达到数组上限,则为false。

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

遇到的困难

        想不到就是真的想不到。

45.跳跃游戏II

题目链接:​​​​​​​45.跳跃游戏II

代码随想录题解:​​​​​​​45.跳跃游戏II

视频讲解:贪心算法,最少跳几步还得看覆盖范围 | LeetCode: 45.跳跃游戏II_哔哩哔哩_bilibili

解题思路:

        一开始试图找到每个元素对印的最大覆盖范围,从而计算步数,但是边界各种不对,还是得看答案。

看完代码随想录之后的想法 

        理解本题的关键在于:以最小的步数增加最大的覆盖范围,直到覆盖范围覆盖了终点,这个范围内最少步数一定可以跳到,不用管具体是怎么跳的,不纠结于一步究竟跳一个单位还是两个单位。

        还是计算每个元素的最大覆盖范围,但同时计算当前元素最大覆盖范围和跳跃后的下一个元素最大覆盖范围。如果i到达curDistance,说明已经完成一次跳跃,对应步数加一,此时当前最大覆盖范围更新为nextDistance,直到nextDistance覆盖到数组上限即可。

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

遇到的困难

        真的难想。

今日收获

        贪心的题目没有套路,没有统一的解决方法,只能看灵光一现能不能想到,以及能不能记住结果。太难了,实在是太难了。

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

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

相关文章

MySQL一条SQL语句的执行过程

MySQL一条SQL语句的执行过程可以大致分为以下几个步骤&#xff1a; mysq分层架构 为了理解这个问题&#xff0c;先从Mysql的架构说起&#xff0c;对于Mysql来说&#xff0c;大致可以分为3层架构。 网络连接层&#xff1a; 作为客户端和服务端的连接&#xff0c;连接器负责处…

Leetcode 17.电话号码的字母组合

题目 思路 输入的digits有几个数就有几层。 一层中有几个数则取决于输入的数字对应的字母有几个。 1.确定递归函数的返回值及参数&#xff1a; 其实参数不是一开始就确定好的&#xff0c;而是你在写递归函数的时候缺啥&#xff0c;就往进去传啥。 这里我就直接全部写出来。…

无线基本认识和配置

1、无线局域网 IEEE 802.11标准 根据应用范围分类 WPAN --- 个人无线网络 NFC、ZIgbee、Bluetooth WLAN --- 无线局域网 WiFi&#xff0c;使用到WPAN技术 WMAN --- 无线城域网 WiMax 802.16 WWAN --- 无线广域网 GSM、CDMA、WCDMA、LTE、5G、TD-SCDMA 2、…

2012年认证杯SPSSPRO杯数学建模C题(第一阶段)碎片化趋势下的奥运会商业模式全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 C题 碎片化趋势下的奥运会商业模式 原题再现&#xff1a; 从 1984 年的美国洛杉矶奥运会开始&#xff0c;奥运会就不在成为一个“非卖品”&#xff0c;它在向观众诠释更高更快更强的体育精神的同时&#xff0c;也在攫取着巨大的商业价值&#…

【leetcode面试经典150题】11.H指数(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

关东升老师力作!四本编程宝典,带你畅游编程世界

&#x1f31f;《看漫画学C》&#xff1a;关东升老师以漫画的形式&#xff0c;让你在欢笑中轻松掌握C编程的核心知识。不再枯燥&#xff0c;不再难懂&#xff0c;让编程变得有趣又简单&#xff01; &#x1f3a8;《MATLAB科研绘图与学术图表绘制从入门到精通》&#xff1a;关东升…

数学中的各种符号虚数概念

max i∈S​A i ​ ≥ ∑ i∈S​B i​. 这个不等式表达的意思是对于集合 S 中的任意非空子集&#xff0c;子集中的最大的 A_i&#xff08;A 的元素&#xff09;的值都大于等于子集中所有 B_i&#xff08;B 的元素&#xff09;的值的总和。换句话说&#xff0c;集合 S 中的最大…

c++的学习之路:15、list(2)

本章主要是讲模拟实现list&#xff0c;文章末附上代码。 目录 一、创建思路 二、构造函数 三、迭代器 四、增删 五、代码 一、创建思路 如下方代码&#xff0c;链表是由一块一块不连续的空间组成的&#xff0c;所以这里写了三个模板&#xff0c;一个是节点&#xff0c;一…

koc和kol是什么意思?

一、koc和kol是什么意思&#xff1f; koc和kol是专业术语。KOC是关键意见消费者的意思&#xff0c;是Key Opinion Consumer的缩写&#xff1b;KOL是关键意见领袖的意思&#xff0c;是Key Opinion Leader的缩写。 1、关键意见领袖kol “关键意见领袖”通俗地讲是达人。这些人…

应用开发:python解析斗鱼弹幕

解决问题 互动弹幕&#xff0c;关注提问 &#xff0c;ai回答 技术 python playwright 调用接口 https://github.com/broven/DouYudanmu/blob/master/douyu.py 演示 放弃 这个根本不是研究方向 定位错误 你浪费下午时间&#xff0c;定位错误 这个跟本不是你的方向。 4个小时看斗…

OMP实现压缩感知的实现(MATLAB)

本文介绍通过DWT和OMP实现压缩感知。 不同的是,将DWT得到的低频放到了作为稀疏矩阵的顶部。 压缩感知 压缩感知算法是一种用于从高维度数据中恢复稀疏信号的方法。它通常用于处理信号的采样和重建,例如图像或音频。以下是压缩感知算法的一般实现细节: 信号表示: 压缩感知算…

蓝桥杯第六届c++大学B组详解

前言&#xff1a; 看了很多博客以及视频讲解&#xff0c;感觉都不是很清楚&#xff0c;比较模棱两可&#xff0c;所以干脆自己一边想&#xff0c;一边写博客&#xff0c;也可帮助到其他人&#xff0c;都是根据自己的逻辑来尽量清楚简单的讲清楚题目&#xff0c;喜欢的不要吝啬三…

计算机笔记(4)续20个

61.指出CPU下一次要执行的指令的地址的部件称为程序计数器 62.动态随机存储器&#xff0c;最为常见的系统内存&#xff0c;即DRAM。DRAM只能将数据保持很短的时间。为了保持数据&#xff0c;DRAM使用电容存储&#xff0c;所以必须隔一段时间刷新一次&#xff0c;如果存储单元没…

Python数据分析十六

一、Python的字典的操作方法popitem和setdefault 当你使用Python中的字典数据类型时&#xff0c;可能会经常用到一些操作方法&#xff0c;比如popitem()和setdefault()。下面我将为你详细讲解这两个方法&#xff0c;并给出相应的代码示例。 1.popitem()方法&#xff1a; pop…

HTTP的介绍

一.什么是HTTP&#xff1f; Hyper Text Transfer Protocol,超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 二.HTTP的特点 &#xff08;1&#xff09;基于TCP协议&#xff1a;面向连接&#xff0c;安全 &#xff08;2&#xff09;基于请求-响应模型的&…

卡奥斯工业互联网平台分析

一、 背景 卡奥斯是海尔推出的具有中国自主知识产权、全球首家引入用户全流程参与体验的工业互联网平台。其核心是大规模定制模式&#xff0c;通过持续与用户交互&#xff0c;将硬件体验变为场景体验&#xff0c;将用户由被动的购买者变为参与者、创造者&#xff0c;将企业由原…

违法解除劳动合同后【股票争议】——案例学习

目录 结论&#xff1a;不统一 观点一&#xff1a; 不属于劳动争议 观点二&#xff1a; 属于劳动争议 股权激励收益是否属于劳动报酬应结合以下要素综合判断&#xff1a; 股权激励收益应属于劳动报酬 问题&#xff1a;违法解除劳动合同后&#xff0c;涉股权激励争议是否属于…

【1】初识 Python

【1】初识 Python 1、编程语言(1) 语言(2) 编程语言(3) 如何利用编程语言与计算机交流(4) 常见的编程语言(5) 语法 2、Python 简介(1) 什么是 Python(2) Python 能做什么(3) Python 的由来(4) Python的特点① 语法精简② 生态好&#xff0c;开发效率高③ Python开发初体验&…

练习 21 Web [GXYCTF2019]BabySQli

SQL联合查询&#xff0c;注意有源码看源码&#xff0c;Base64以及32的区别&#xff0c;MD5碰撞 打开后有登录框&#xff0c;先随意登录尝试 只有输入admin才是返回wrong pass&#xff01; 其他返回wrong user 所以用户名字段一定要输入admin 养成好习惯&#xff0c;先查看源码…

删除mysql表卡死 , 打不开,一直转圈圈

最近用navicat删除某一张表时&#xff0c;直接卡死转圈圈&#xff0c;导致navicat直接无响应, 想着是不是自己navicat有问题&#xff0c;换同事电脑来删这张表&#xff0c;还是同样问题。 多次尝试才整明白&#xff0c;根本不是navicat的问题.是mysql 的表锁死了! 如果频繁的对…