当前位置: 首页 > news >正文

【代码随想录训练营】【Day 35】【贪心-2】| Leetcode 122, 55, 45

【代码随想录训练营】【Day 35】【贪心-2】| Leetcode 122, 55, 45

需强化知识点

  • 贪心:跳跃游戏

题目

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

  • 动态规划
  • 贪心:只要股票第二天涨了,前一天就买,第二就买
class Solution:def maxProfit(self, prices: List[int]) -> int:# dp = [[0] * 2 for _ in range(len(prices))]# # 0 代表当天持有,1 代表当天不持有# dp[0][0] = -prices[0]# result = 0# for i in range(1, len(prices)):#     dp[i][0] = max(dp[i-1][0], dp[i-1][1]-prices[i])#     dp[i][1] = max(dp[i-1][0]+prices[i], dp[i-1][1])#     result = max(result, max(dp[i][0], dp[i][1]))# return resultresult = 0for i in range(1, len(prices)):if prices[i] > prices[i-1]:result += prices[i] - prices[i-1]return result

55. 跳跃游戏

  • cover记录每步能覆盖到的最大范围,只要最终cover能到达最后一个下标,即为True,注意通过 if i <= cover:来控制,在cover范围内都可以更新cover
class Solution:def canJump(self, nums: List[int]) -> bool:cover = 0for i in range(len(nums)):if i <= cover:cover = max(cover, i+nums[i])if cover >= len(nums)-1:return Truereturn False

45. 跳跃游戏 II

  • 最小跳跃数,即每一步都是最远
  • 当到达目前cover,就要跳一步,选择跳到下一步能跳到的最远,因此new_cover要一直更新,维护着下一步能跳到的最远
class Solution:def jump(self, nums: List[int]) -> int:new_cover, cover = 0, 0result = 0if len(nums) == 1:return 0for i in range(len(nums)):new_cover = max(new_cover, nums[i] + i)if i == cover:cover = new_coverresult += 1if cover >= len(nums) - 1:return resultreturn result
http://www.lryc.cn/news/355402.html

相关文章:

  • 【深度学习】ultralytics, yolo seg,实例分割图绘制,核对yolo seg 的txt标记对不对
  • 如何保证员工在精益变革中始终保持积极的态度?
  • 【Java面试】三、Redis篇(下)
  • GpuMall智算云:QwenLM/Qwen1.5/Qwen1.5-7B-Chat
  • CentOS6.5 下编译 FreeSWITCH 1.2.23 版本
  • 2024年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Redis篇 数据的编码方式和单线程模型
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第4节 (内存管理和接口)
  • 【记录贴】docker镜像格式报错
  • 设计模式 19 模板模式 Template Pattern
  • PHP如何实现实时计算使用者消耗服务器资源费用?
  • 在C++中自定义命名空间,在命名空间中定义string变量,同时定义一个函数实现单词逆置
  • 【leetcode 141】环形链表——快慢指针(龟兔赛跑)
  • 容器(Container)的详细介绍
  • Python 网格变换之平移、旋转、缩放、变换矩阵
  • 推荐10款优秀的组件库(一)
  • freertos的信号量和互斥锁学习笔记
  • C++基础——vector的详解与运用
  • const指针,星号判断方法
  • 移动摄像头专网需要解vlan,如何解决
  • 5.27周报
  • C-数据结构-树状存储的基本实现
  • 指纹识别经典图书、开源算法库、开源数据库
  • 嵌入式之译码器
  • 分成sum接近的2个集合,返回相对小的sum
  • SpringBoot前置知识01-SPI接口
  • 数学建模--LaTeX的基本使用
  • 授权调用: 介绍 Transformers 智能体 2.0
  • 流媒体内网穿透/组网/视频协议转换EasyNTS上云网关如何更改密码?
  • HTML5的标签(文本链接、图片路径详解)