代码随想录算法训练营Day24 | 122.买卖股票的最佳时期、55.跳跃游戏、45.跳跃游戏||

news2024/9/20 18:31:59

LeetCode 122 买卖股票的最佳时期

在这里插入图片描述
本题思路:记录每天的利润值,第一天的为 0 ,第二天的当天的减去前一天的。然后遍历相加为正的利润值。最后得到的结果就是最大利润。

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

LeetCode 55 跳跃游戏

在这里插入图片描述
本题思路:记录每一步的覆盖区域,并随时更新覆盖区域。如果覆盖区域大于等于 nums.length - 1。就说明能跳到末尾去。

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(cover, i + nums[i]);
            if(cover >= nums.length-1){
                return true;
            }
        }
        return false;
    }
}

LeetCode 45 跳跃游戏||

在这里插入图片描述
本题思路:主要是以下几个

  1. 每走一步记录最大的一个覆盖范围
  2. 当 i 遍历到当前的最大覆盖范围的时候
    • 如果 i 不等于 nums.length-1的时候,说明还没到末尾,此时就 res++ 说明移动了一次
    • 就要更新当前的覆盖范围为最大覆盖范围
    • 并且如果当前覆盖范围大于等于 nums.length - 1,就要break,退出遍历数组
class Solution {
    public int jump(int[] nums) {
        if(nums.length == 1){
            return 0;
        }
        int cur = 0;
        int next = 0;
        int res = 0;
        for(int i = 0; i < nums.length; i++){
            // 最大覆盖范围
            next = Math.max(i + nums[i], next);
            // 如果当前 i 已经到达了 cur 覆盖区域
            if(i == cur){
                // 并且不是数组末尾
                if( cur != nums.length-1){
                    res++;
                    // 更新 cur 值,最大覆盖范围
                    cur = next;
                    if(cur >= nums.length - 1){
                        break;
                    }
                }
            }
        }
        return res;
    }
}

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

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

相关文章

DiffMIC:融合局部和全局分析,基于扩散模型的医学图像分类方法

DiffMIC&#xff1a;基于扩散模型的医学图像分类方法 DiffMIC的核心思想糖尿病视网膜病变分级 网络结构去噪扩散模型&#xff1a;提升特征清晰度双粒度条件引导&#xff08;DCG&#xff09;&#xff1a;融合局部和全局分析条件特定的最大均值差异&#xff08;MMD&#xff09;正…

Linux:软件包管理器 yum

提示&#xff1a;以下指令均在Xshell 7 中进行 什么是软件包&#xff1f; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放…

Linux上软件安装

软件安装常见方式 二进制发布包 软件已经针对具体平台编译打包发布&#xff0c;只要解压&#xff0c;修改配置即可。 RPM包 软件已经按照redhat的包管理工具规范RPM进行打包发布&#xff0c;需要获取到相应的软件RPM发布包&#xff0c;然后用RPM命令进行安装&#xff0c;但…

Internet Download Manager 6.42.3 (IDM) 中文破解免激活绿色版

Internet Download Manager 6.42.3中文破解版&#xff0c;全球最佳下载利器。Internet Download Manager (简称IDM) 是一款Windows 平台功能强大的多线程下载工具&#xff0c;国外非常受欢迎。支持断点续传&#xff0c;支持嗅探视频音频&#xff0c;接管所有浏览器&#xff0c;…

可视化k8s页面(Kubepi)

Kubepi是一个简单高效的k8s集群图形化管理工具&#xff0c;方便日常管理K8S集群&#xff0c;高效快速的查询日志定位问题的工具 随便在哪个节点部署&#xff0c;我这里在主节点部署 docker pull kubeoperator/kubepi-server docker run --privileged -itd --restartunless-st…

动态规划汇总

作者推荐 视频算法专题 简介 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是运筹学的一个分支&#xff0c;是求解决策过程最优化的过程。每次决策依赖于当前状态&#xff0c;又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的&#x…

端杂七杂八系列篇四-Java8篇

后端杂七杂八系列篇四-Java8篇 ① Lombok插件① RequiredArgsConstructor② SneakyThrows③ UtilityClass④ Cleanup ② Lambda 4个常用的内置函数① Function<T, R> - 接受一个输入参数并返回一个结果② Consumer - 接受一个输入参数&#xff0c;并执行某种操作&#xf…

Jumpserver中安装httpx

查看已安装的包 pip freeze # python -V # Python 2.7.5安装anyio 刚开始直接pip install httpx&#xff0c;未设置版本号&#xff0c;因已有idna2.7&#xff0c;所以出现版本不兼容的现象 anyio 3.0.0 requires idna>2.8, but you have idna 2.7 which is incompatible.…

Red Hat Enterprise Linux 8.9 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…

【VRTK】【Unity】【游戏开发】项目实践-小游戏

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 本篇做一个综合实践,应用所学做一个mini VR游戏。不用写一行代码,纯粹理解并使用现有的VRTK脚本。 【导入所需资源】 在之前VRTK项目基础上…

Pix2Pix理论与实战

本文为&#x1f517;365天深度学习训练营 中的学习记录博客 原作者&#xff1a;K同学啊|接辅导、项目定制 我的环境&#xff1a; 1.语言&#xff1a;python3.7 2.编译器&#xff1a;pycharm 3.深度学习框架Pytorch 1.8.0cu111 一、引入 在之前的学习中&#xff0c;我们知道…

【51单片机Keil+Proteus8.9】温室盆栽灌溉系统

实验五 实验名称 温室盆栽灌溉系统 软件设计&#xff1a; 1. 定义对应的引脚和端口的别名。 2. 编写延时函数&#xff0c;用于控制程序的执行速度。 3. 编写LCD控制函数&#xff0c;包括发送命令和发送数据两种操作。 4. 编写显示函数&#xff0c;用于在LCD上显示字符串…

docker硬件交互 _ROS2

docker硬件交互 _ROS2 将自己需要挂载的设备接到主板上&#xff0c;在宿主机中建立udev规则&#xff08;/etc/udev/rules.d/&#xff09;然后在开启容器时&#xff0c;将设置了规则的devices 通过 --device/dev/myserial --device/dev/rplidar 等 参数挂载到docker容器中 doc…

WordPress怎么禁用文章和页面古腾堡块编辑器?如何恢复经典小工具?

现在下载WordPress最新版来搭建网站&#xff0c;默认的文章和页面编辑器&#xff0c;以及小工具都是使用古腾堡编辑器&#xff08;Gutenberg块编辑器&#xff09;。虽然有很多站长说这个编辑器很好用&#xff0c;但是仍然有很多站长用不习惯&#xff0c;觉得操作太难了&#xf…

【Linux取经路】初探进程地址空间

文章目录 一、历史问题回顾二、语言层面的地址空间2.1 验证 三、虚拟地址的引入3.1 初步解释这种现象——引入地址空间的概念3.2 再来粗粒度理解上面的现象 四、细节解释4.1 地址空间究竟是什么&#xff1f;4.2为什么要有地址空间4.3 页表4.3.1 CR3寄存器4.3.2 页表是由页表项组…

【Qml-数据模型和视图】

Qml编程指南 VX&#xff1a;hao541022348 ■ 数据模型和视图■ ■ 数据模型和视图 QML使用了与Qt中Model-View类似的结构模型类提供了数据模型可以使QML的简单数据&#xff0c;或者复杂的C数据 QML: ListModel, XmlListModel, VisualItemModelC: QAbstractItemModel, QStringL…

NX二次开发获取圆弧的四个象限点

我是用来用来画水路线框的UF_MODL_ask_curve_points&#xff08;&#xff09;可以按弧长或者弧度获取曲线的等分点&#xff0c;取PI/2的圆弧&#xff0c;即将圆弧四等分&#xff0c;你也可以取任意等分点。 int GetArcPoint(tag_t arc_tag,double point[4][3]) {if(arc_tag0)r…

Docker 47 个常见故障的原因和解决方法

【作者】曹如熙&#xff0c;具有超过十年的互联网运维及五年以上团队管理经验&#xff0c;多年容器云的运维&#xff0c;尤其在Docker和kubernetes领域非常精通。 Docker是一种相对使用较简单的容器&#xff0c;我们可以通过以下几种方式获取信息&#xff1a; 1、通过docker r…

《Linux高性能服务器编程》笔记02

Linux高性能服务器编程 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第06章 高级I/O函数6.1 pipe函数6.2 dup函数和dup2函数6.3 readv 函数和writev 函数6.4 sendfile 函数6.…

Redmine替代品合集:6款值得尝试的项目管理软件

在软件开发和项目管理行业&#xff0c;Redmine曾经是一个大家公认的、基于Web的项目管理工具。随着技术的发展和团队需求的多样化&#xff0c;市场上出现了许多功能强大的Redmine替代品。这些工具在特定方面—无论是用户界面、功能集、集成能力还是用户体验上—都可能提供更新颖…