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

LeetCode 热题 100(八):贪心。121. 买卖股票的最佳时机、45. 跳跃游戏 II

题目一:

121. 买卖股票的最佳时机icon-default.png?t=N7T8https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/

思路:因为时间复杂度O(n),所以使用贪心来做。类似双指针,一个指针记录到当前循环时最小的股票价格,另一个记录最大利润(每次都用prices[i] - 前一个指针值,并取max)

代码:

class Solution {public int maxProfit(int[] prices) {// 记录最小值int low = Integer.MAX_VALUE;// 记录最大利润int high = 0;for (int i = 0; i < prices.length; i++) {low = Math.min(low, prices[i]);high = Math.max(prices[i] - low, high);}return high;}
}

题目二:

45. 跳跃游戏 IIicon-default.png?t=N7T8https://leetcode.cn/problems/jump-game-ii/

思路:贪心。需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖。

首先求出下一步最大覆盖的最大值,如果可以到达终点,直接count+1;

若不能到达终点,则让当前这一步最大覆盖=下一步最大覆盖的最大值,继续重复求当前这一步的下一步覆盖最大值。

图片来源:代码随想录

代码:

class Solution {public int jump(int[] nums) {if (nums.length == 0 || nums.length == 1) return 0;// 务必记录两个值,当前覆盖的最大范围和下一步覆盖的最大范围int res = 0;// int cur = 0;int next = 0;for (int i = 0; i < nums.length; i++) {next = Math.max(next, nums[i] + i);if (next >= nums.length - 1)return res + 1;if (i == cur){res++;cur = next;}}return res;}
}

http://www.lryc.cn/news/171686.html

相关文章:

  • 第N个数字
  • 【适用于电力系统和音频系统】计算信号的总谐波失真 (THD)(Matlab代码实现)
  • kubernetes(k8s)PVC
  • Android ANR问题触发机制
  • 解决jupyter找不到虚拟环境的问题
  • Unity丨移动相机朝向目标并确定目标在摄像机可视范围内丨摄像机注释模型丨摄像机移动丨不同尺寸模型优化丨
  • 排序算法:归并排序(递归和非递归)
  • 数据可视化
  • Go并发可视化解释 – select语句
  • http的网站进行访问时候自动跳转至https
  • realloc
  • Windows AD域使用Linux Samba
  • Scrapy+Selenium自动化获取个人CSDN文章质量分
  • 【Android Framework系列】第15章 Fragment+ViewPager与Viewpager2相关原理
  • typeof的作用
  • 性能测试 —— Tomcat监控与调优:status页监控
  • Ubuntu 安装 CUDA 与 CUDNN GPU加速引擎
  • pdf文件太大如何处理?教你pdf压缩简单方法
  • Nacos使用教程(二)——nacos注册中心(1)
  • 蓝桥杯2023年第十四届省赛真题-买瓜--C语言题解
  • R语言进行孟德尔随机化+meta分析(1)---meta分析基础
  • 网络安全第一次作业
  • idea设置gradle
  • 基于Elasticsearch的多文档检索 比如 商品(goods)、案例(cases)
  • 9月18日,每日信息差
  • 基于FPGA实现FPDLINK III
  • [补题记录] Atcoder Beginner Contest 309(E)
  • 【HarmonyOS】解决API6 WebView跳转外部浏览器问题、本地模拟器启动黑屏
  • 给出三个整数,判断大小
  • 优化软件系统,解决死锁问题,提升稳定性与性能 redis排队下单