第31天-贪心-第八章 ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

news2024/9/26 1:18:54

文章目录

  • 1. 买卖股票的最佳时机
  • 2. 跳跃游戏
  • 3. 跳跃游戏 ||

1. 买卖股票的最佳时机

- LeetCode链接

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。

  • 思路: 根据每天的利润差来计算可以获得的最大利润
  • 按照当天的股票价格与前一天的股票价格决定当前的股票是否
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int result = 0;

        for(int i=0; i<prices.size()-1; i++){
            result += max(prices[i+1] - prices[i], 0);
        }
        
        return result;
    }
};

2. 跳跃游戏

  • LeetCode链接

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
在这里插入图片描述

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/jump-game
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

bool canJump(vector<int>& nums){
    int cover = 0;
    if(nums.size() == 1) return true;
    for(int i=0; i<=cover; i++){
        cover = max(cover, i+nums[i]);
        if(cover >= nums.size() - 1) return true;
    }

    return false;
}

3. 跳跃游戏 ||

- LeetCode

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:
0 <= j <= nums[i]
i + j < n
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。

class Solution {
public:
    int jump(vector<int>& nums) {
        // 每次选局部跳的最远的位置
        int result = 0;     // 记录跳跃了几次
        int curCover = 0;   // 当前覆盖的最远距离下标
        int nextCover = 0;  // 下一步覆盖的最远距离下标

        // 每次所选的局部最大跳跃范围就包含了后面的最优范围
        for(int i=0; i<nums.size()-1; i++){
            nextCover = max(nums[i]+i, nextCover);
            if(i == curCover){      // 当遇到覆盖的最远距离下标
                curCover = nextCover;   // 更新当前覆盖我的最远距离下标
                result++;
            }
        }

        return result;
    }
};

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

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

相关文章

docker安装jenkins安装流程(一)

1.下载安装jdk 官网&#xff1a;https://jdk.java.net/ https://www.oracle.com/java/technologies/downloads/ 上传到linux服务器 cd /usr mkdir jdk tar -zxvf 所要解压的文件名 编辑profile文件&#xff1a;vim /etc/profile 把光标移到最后一行&#xff0c;键盘按 i&…

技术分享 | 如何优雅的删除 Zabbix 的 history 相关历史大表

作者&#xff1a;徐文梁 爱可生DBA成员&#xff0c;一个执着于技术的数据库工程师&#xff0c;主要负责数据库日常运维工作。擅长MySQL,redis&#xff0c;其他常见数据库也有涉猎&#xff0c;喜欢垂钓&#xff0c;看书&#xff0c;看风景&#xff0c;结交新朋友。 本文来源&…

Vue动图数据表格,根据字段是否为空,控制表格列的隐藏和显示

所在前面的话&#xff0c;我是个前端小白&#xff0c;大佬请绕行&#xff0c;可能大佬觉得很简单&#xff0c;但是我真的花了好几个小时去解决&#xff0c;所以记录一下&#xff0c;下次也可以作为参考。 我主要是以第二种方式进行修改的 开门见山 简述问题&#xff1a;大家…

《这就是软件工程师》- 每位软件工程师值的看的一本书,尤其是刚刚步入IT行业的年轻人

文章目录第一部分&#xff5c;行业地图1、现实&#xff1a;为什么会有996&#xff1f;1&#xff09;行业处于特定的发展阶段2&#xff09;公司组织管理问题2、进阶&#xff1a;软件工程师的四大台阶1&#xff09;新手阶段【执行力】2&#xff09;进阶阶段【设计能力】3&#xf…

电子行业数字化工厂的发展现状如何

随着科技的不断发展&#xff0c;电子行业的生产制造方式也在不断地进步。数字化工厂建设是电子行业中的一个重要发展方向&#xff0c;它可以提高生产效率&#xff0c;降低生产成本&#xff0c;提高产品质量&#xff0c;减少人力资源的使用。本文将从数字化工厂的概念、发展历程…

Zookeeper总结

目录 1、概念 2、什么是Zookeeper 3、如何下载 4、部署运行 4.1、解压文件 4.2、修改配置文件 4.3、创建持久化目录 4.4、配置jdk 4.5、启动zookeeper服务 4.6、查看zookeeper运行状态 5、系统模型 5.1、数据模型&#xff08;文件系统&#xff09; 5.2、znode节点类型 持久…

Google FLASH-QUAD Transformer模型的设计雷点

这个模型用来做无序弱监督分类&#xff0c;效果好&#xff0c;特别是收敛速度比标准多头Attention层快多了&#xff0c;完全没得比。 问题1 但这模型我用来做自回归生成&#xff0c;非常垃圾。 同时尝试了 GPT 和 T5 这两种模型结构的设计&#xff0c;明明Loss正常下降&#…

环境变量相关知识

目录 目录 谢谢你的阅读&#xff0c;这是对我最大的鼓舞 先说结论&#xff1a; 开始论述&#xff1a; 让我们举个例子 相关指令 创建本地变量 创建环境变量 方法一&#xff1a; 方法二&#xff1a; 删除环境变量 子进程中也有环境变量 第一种&#xff1a; 第二种 …

【PlumGPT】与PlumGPT开启智能对话之旅

文章目录 一、前言二、PlumGPT介绍篇三、PlumGPT登录篇四、PlumGPT体验篇1、与PlumGPT聊天2、让PlumGPT翻译3、让PlumGPT创作4、请PlumGPT写推荐信5、让PlumGPT展示图片6、让PlumGPT充当百科小助手 五、PlumGPT总结篇 PlumGPT入口体验链接&#xff1a;https://plumgpt.com 一、…

【Kubernetes】 故障转移和自愈能力机制详解

文章目录一. 引言1. 介绍Kubernetes2. 故障转移和自愈能力的重要性二. Kubernetes 概览1. Kubernetes 架构2. Kubernetes 组件和功能三. 故障转移1. 如何定义故障转移2. Kubernetes 中的故障转移机制2.1 健康检查2.2 Pod 和 ReplicaSet2.3 控制器和故障转移3. Pods和ReplicaSet…

LS1028+TSN+Vxworks实时系统解决方案

TSN&#xff08;时间敏感网络&#xff09;正在各类市场兴起。它可以为过去不曾存在的全新应用提供实时通信。 例如&#xff0c;将控制功能从驱动中解耦出来并移至边缘计算。下一代自动控制器可以并行处理视频流和控制流等各种工作负载&#xff0c;在一台机器上运行全部深度学习…

【高危】Google Chrome V8 类型混淆漏洞(CVE-2023-2033)

漏洞描述 Google Chrome V8是Google开源的JavaScript和WebAssembly引擎&#xff0c;被用在Chrome和Node.js等浏览器和平台中。 该项目受影响版本存在类型混淆漏洞&#xff0c;攻击者可通过诱导用户打开恶意链接来触发此漏洞&#xff0c;可能导致浏览器崩溃或执行任意代码。由…

跟姥爷深度学习2 TensorFlow的基本用法

一、前言 前面我们浅用TensorFlow做了个天气预测&#xff0c;虽然效果不咋样&#xff0c;但算是将整个流程跑通了。这一篇我们在之前基础上对TensorFlow的一些参数进行简单介绍&#xff0c;在接口文件的基础上了解各参数的简单含义和用法。 二、再次构建模型 我们先将之前的…

基于组合双向拍卖的共享储能机制研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

规模化敏捷框架之LeSS

Scrum 是目前比较流行的敏捷框架&#xff0c;Scrum 敏捷开发团队由产品负责人&#xff08;Product Owner&#xff09;、敏捷教练&#xff08;Scrum Master&#xff09;、软件开发人员和其他合作人员组成。团队在这个指导框架下协同工作、开发、创造和交付有价值的产品来解决复杂…

易基因:METTL3介导的m6A甲基化谱调控肌肉干细胞成肌细胞状态转换|发育分化

2020年9月29日&#xff0c;《Cell Death Discovery》&#xff08;IF: 7.109&#xff09;杂志发表了题为“A defined N6-methyladenosine (m6A) profile conferred by METTL3 regulates muscle stem cell/myoblast state transitions”的研究论文&#xff0c;研究通过MeRIP-seq&…

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

文章目录前言一、建立时间检查1、寄存器到寄存器2、输入端口到寄存器3、寄存器到输出端口4、输入端口到输出端口二、保持时间检查1、寄存器到寄存器2、输入端口到寄存器3、寄存器到输出端口4、输入端口到输出端口前言 2023.4.11 继续学习STA&#xff0c;前面听的感觉好迷糊&am…

Android---性能优化之图片压缩

质量压缩 质量压缩会用到 Bitmap.compress()。 public boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream); 这个方法有三个参数&#xff1a; Bitmap.CompressFormat format&#xff1a;图像的压缩格式&#xff08;jpeg ,png, webp&#xf…

C++STL大全----容器篇(上)

&#xff08;一&#xff09;概念 STL&#xff0c;英文全称 standard template library&#xff0c;中文可译为标准模板库或者泛型库&#xff0c;其包含有大量的模板类和模板函数&#xff0c;是 C 提供的一个基础模板的集合&#xff0c;用于完成诸如输入/输出、数学计算等功能。…

数据库第一个实验

啦啦啦啦啦&#xff0c;数据库终于要实验了&#xff0c;很担心做不好&#xff0c;要是挂了怎么办 只是自己的作业&#xff0c;可能会有问题&#xff0c;欢迎前来指正 一、题目&#xff08;100分&#xff09; 一、创建后面给出的这6个表&#xff08;20分&#xff09; 二、用不同…