数据结构刷题(二十五):122买卖股票的最佳时机 II、55跳跃游戏、45跳跃游戏II
创始人
2024-06-03 22:45:12
0

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

思路:贪心。把利润分解为每天为单位的维度,然后收集正利润的区间即可。

局部最优:收集每天的正利润,全局最优:求得最大利润。

// 贪心思路
class Solution {public int maxProfit(int[] prices) {int result = 0;for (int i = 1; i < prices.length; i++) {result += Math.max(prices[i] - prices[i - 1], 0);}return result;}
}

2.55. 跳跃游戏

思路:贪心。将这个问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点!

局部最优解:每次取最大跳跃步数(取最大覆盖范围)。

整体最优解:最后得到整体最大覆盖范围,看是否能到终点。

注意:只需要满足有一个位置能够直接指向最后的下标,且前面的位置可以到达这个位置。

public boolean canJump(int[] nums) {int count = 0;for (int i = 0; i <= count; i++) {// 每移动一个单位,就更新最大覆盖范围。// 注意i + nums[i],必须得有一个位置直接指向最后的下标才能truecount = Math.max(count, i + nums[i]);// 当最大覆盖范围能指向最后一个下标时结束if (count >= nums.length - 1)return true;}return false;
}

3.45. 跳跃游戏 II

思路:贪心。

真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!

这里需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖。

  • 其中只要下一步的最大覆盖能够覆盖到最后一个下标,则直接返回count+1;

  • 若不能,则走到当前可覆盖的最大范围,count+1,并且更新下一步可覆盖的最大范围。

class Solution {public int jump(int[] nums) {if (nums == null || nums.length == 0 || nums.length == 1) {return 0;}//记录跳跃的次数int count = 0;//当前的覆盖最大区域int curjump = 0;//最大的覆盖区域int nextjump = 0;for (int i = 0; i < nums.length; i++) {//在可覆盖区域内更新最大的覆盖区域nextjump = Math.max(nums[i] + i, nextjump);//说明当前一步,再跳一步就到达了末尾if (nextjump >= nums.length - 1)return (count + 1);//走到当前覆盖的最大区域时,更新下一步可达的最大区域if (i == curjump){count++;curjump = nextjump;}}return count;}
}

相关内容

热门资讯

Windows操作系统音频工具... Windows操作系统音频工具全面解析一、Windows音量控制Windows音量控制是Window...
安装装系统步骤,电脑系统安装步... 电脑系统安装步骤详解一、准备安装环境在开始安装系统之前,我们需要准备以下环境: 一台可以正常工作的...
Windows电脑系统启动盘,... Windows电脑系统启动盘制作指南随着电脑在日常生活中的广泛应用,系统启动盘成为了许多用户必备的工...
windows操作系统的软件,... Windows操作系统软件概述Windows操作系统,作为微软公司推出的主流桌面操作系统,自1985...
windows的系统命令的环境... 什么是环境变量环境变量是操作系统用来指定运行环境的一些参数,它们是系统提供的name-value变量...
包头定位系统安装公司,包头定位... 包头定位系统安装公司引领行业智能化发展公司简介包头定位系统安装公司成立于2005年,是一家专注于定位...
windows和深度系统双系统... Windows与深度系统双系统安装指南:轻松实现跨平台操作一、准备工作在开始安装双系统之前,我们需要...
windows和安卓双系统笔记... Windows和安卓双系统笔记本:跨界融合,开启新体验一、双系统笔记本的定义与特点双系统笔记本,顾名...
安装新风系统隐形收费,揭秘新风... 揭秘新风系统安装中的隐形收费,消费者需警惕随着人们对室内空气质量要求的提高,新风系统逐渐成为家庭和商...
windows操作系统 影响吗... Windows操作系统:影响深远的技术基石Windows操作系统,自1985年首次发布以来,已经走过...
windows操作系统外部设备... Windows操作系统中的外部设备即插即用功能解析随着计算机技术的不断发展,外部设备在用户日常使用中...
windows的系统设置快捷键... Windows系统设置快捷键一览,提升效率必备在Windows操作系统中,快捷键的使用可以大大提高我...
windows更新服务器安装系... Windows更新服务器安装与系统下载软件配置指南随着信息技术的不断发展,企业内部网络的安全性和稳定...
windows服务器操作系统审... Windows服务器操作系统审核策略详解随着信息技术的飞速发展,网络安全问题日益突出。Windows...
windows的系统自动更新,... Windows系统自动更新:了解、设置与优化随着信息技术的飞速发展,操作系统更新已成为保障系统安全与...
windows安装linux双... Windows安装Linux双系统全攻略随着信息技术的不断发展,Linux系统因其开源、稳定、安全等...
windows95系统游戏,经... Windows 95系统游戏:经典回忆中的科技瑰宝在互联网飞速发展的今天,许多经典游戏已经成为了我们...
windows打不开如何重装系... Windows打不开?教你如何重装系统解决问题在电脑使用过程中,我们可能会遇到各种问题,其中最常见的...
windows错误系统,Win... Windows错误系统怎么办?全面解析解决方法在电脑使用过程中,我们难免会遇到各种系统错误。这些错误...
安装系统怎么装网络,如何通过网... 系统安装指南:如何通过网络安装操作系统随着信息技术的不断发展,网络安装操作系统已经成为一种高效、便捷...