代码随想录算法训练营第30天| 122.买卖股票的最佳时机II、55. 跳跃游戏、 45.跳跃游戏II、 1005.K次取反后最大化的数组和

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

在这里插入图片描述

题目链接:122.买卖股票的最佳时机II
文档讲解:代码随想录
状态:so easy

思路:不用考虑操作的次数,其实只要有赚就拿下就行了。

题解:

class Solution {

   public int maxProfit(int[] prices) {
        // 初始化一个数组 dp 用于记录每一天的累计利润
        int[] dp = new int[prices.length];

        // 从第二天开始遍历价格数组
        for (int i = 1; i < prices.length; i++) {
            // 如果当天的价格比前一天高,则计算利润;否则利润为 0
            int profit = prices[i] > prices[i - 1] ? prices[i] - prices[i - 1] : 0;

            // 当天的累计利润等于前一天的累计利润加上当天的利润
            dp[i] = dp[i - 1] + profit;
        }

        // 返回在最后一天的累计最大利润
        return dp[prices.length - 1];
    }
    
}

55. 跳跃游戏

在这里插入图片描述

题目链接:55. 跳跃游戏
文档讲解:代码随想录
状态:还行

思路:贪心策略的核心思想是在遍历数组的过程中,始终维护当前能够到达的最远位置,并尽量往前跳。只要当前能够到达的最远位置始终大于等于当前位置,就说明可以到达最后一个位置。否则,就不能到达。

题解:

   public boolean canJump(int[] nums) {
        // 记录当前能够到达的最远位置
        int maxReach = nums[0];

        // 遍历数组
        for (int i = 1; i < nums.length; i++) {
            // 如果当前最远距离小于当前位置,说明无法到达当前位置,返回 false
            if (maxReach < i) {
                return false;
            }

            // 更新当前能够到达的最远位置
            maxReach = Math.max(maxReach, nums[i] + i);

            // 如果最远位置已经到达或超过最后一个位置,返回 true
            if (maxReach >= nums.length - 1) {
                return true;
            }
        }

        // 如果遍历结束后无法到达最后一个位置,返回 false
        return maxReach >= nums.length - 1;
    }

45.跳跃游戏II

在这里插入图片描述

题目链接:45.跳跃游戏II
文档讲解:代码随想录
状态:思路大差不差,代码写不出来!

思路:在每一步选择能够跳跃到最远位置的点,从而逐步向数组的末尾移动。

题解:

    public int jump(int[] nums) {
        // 记录能够到达的最远位置
        int maxReach = 0;
        // 记录当前步数的结束位置
        int end = 0;
        // 记录跳跃次数
        int res = 0;

        // 遍历数组,尝试每一步能到达的最远位置
        int i = 0;
        while (i < nums.length - 1) {
            // 更新能够到达的最远位置
            maxReach = Math.max(maxReach, nums[i] + i);

            // 如果当前步数达到了之前设定的结束位置
            if (i == end) {
                // 更新结束位置为当前能够到达的最远位置
                end = maxReach;
                // 增加跳跃次数
                res++;
            }

            // 继续遍历下一个位置
            i++;
        }

        // 返回跳跃次数
        return res;
    }

1005.K次取反后最大化的数组和

在这里插入图片描述

题目链接:1005.K次取反后最大化的数组和
文档讲解:代码随想录
状态:好烦,总是各种想漏了!

思路:当负数的个数大于等于k时,翻转所有负数,如果k还有剩余次数,则说明负数已经全部转正,此时剩余的k个数如果是偶数则自己抵消,如果是奇数就减掉2倍最小正数。

题解:

    public int largestSumAfterKNegations(int[] nums, int k) {
        // 排序,把可能有的负数排到前面
        Arrays.sort(nums);
        int sum = 0;
        for (int i = 0; i < nums.length; i++) {
            // 贪心:当负数的个数大于等于k时,翻转所有负数,如果k还有剩余次数,则说明负数已经全部转正,此时剩余的k个数如果是偶数则自己抵消,如果是奇数就减掉2倍最小正数
            if (nums[i] < 0 && k > 0) {
                nums[i] = -1 * nums[i];
                k--;
            }
            sum += nums[i];
        }
        Arrays.sort(nums);
        // 如果k没剩,那说明能转的负数都转正了,已经是最大和,返回sum
        // 如果k有剩,说明负数已经全部转正,所以如果k还剩偶数个就自己抵消掉,不用删减,如果k还剩奇数个就减掉2倍最小正数。
        return sum - (k % 2 == 0 ? 0 : 2 * nums[0]);
    }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据通信与网络(三)

物理层概述&#xff1a; 物理层是网络体系结构中的最低层 它既不是指连接计算机的具体物理设备&#xff0c;也不是指负责信号传输的具体物理介质&#xff0c; 而是指在连接开放系统的物理媒体上为上一层(指数据链路层)提供传送比特流的一个物理连接。 物理层的主要功能——为…

期末考后怎样发成绩?

老师们&#xff0c;下周可就是期末考啦&#xff0c;又到了头疼发成绩的时候了。每当这个时候&#xff0c;家长们总是急切地咨询孩子的考试表现&#xff0c;向老师们询问成绩。这种场景几乎成了每学期结束时的常态。 别担心&#xff0c;我来安利一个超棒的工具——“易查分小程序…

前端菜鸡流水账日记 -- git管理工具(多版本)

哈喽哇&#xff0c;我又又又来了&#xff0c;其实之前就挺想进行一篇关于git管理工具的分享的&#xff0c;但是一直都没有来的及&#xff0c;直到今天&#xff0c;在学习的时候&#xff0c;&#xff0c;一个朋友新发现了一个vscode中的小插件&#xff0c;所以我就决定一起来分享…

市值3万亿英伟达的崛起:技术、坚持与市场的力量,厚积薄发的经典案例

在科技领域&#xff0c;英伟达&#xff08;NVIDIA&#xff09;的故事无疑是一个厚积薄发的经典案例。作为一家专注于图形处理单元&#xff08;GPU&#xff09;的公司&#xff0c;英伟达用31年的时间证明了技术的价值、计算的价值和坚持的价值。本文将详细探讨英伟达如何从一家市…

Leaflet【四】轨迹回放效果控制台控制轨迹运动效果

安装依赖&准备静态资源 轨迹回放使用leaflet-trackplayer插件 npm i leaflet-trackplayer --force初始化地图&#xff0c;在这里初始化地图可以参考&#xff0c;然后导入了轨迹回放插件和一个图片&#xff08;用于标记当前轨迹运动点&#xff09;图片资源 import L from…

【对抗去偏】BiasAdv: Bias-Adversarial Augmentation for Model Debiasing

原文标题&#xff1a; BiasAdv: Bias-Adversarial Augmentation for Model Debiasing 原文代码&#xff1a; 暂无 发布年度&#xff1a; 2023 发布期刊&#xff1a; CVPR 摘要 Neural networks are often prone to bias toward spurious correlations inherent in a dataset, …

【代码仓库提交大文件,用Git LFS!】

开始前 Git LFS&#xff1a;请注意&#xff0c;你的远程仓库需要支持Git LFS。GitHub、GitLab和Bitbucket都支持Git LFS&#xff0c;但可能需要额外的配置或开启特定的支持选项。 介绍 Git LFS (Large File Storage) 是一个 Git 扩展&#xff0c;用于处理和存储大文件。通常…

vivado WIRE

WIRE是用于在Xilinx部件上路由连接或网络的设备对象。一根电线 是单个瓦片内部的一条互连金属。PIP、系紧装置和 SITE_PINs。 提示&#xff1a;WIRE对象不应与设计的Verilog文件中的WIRE实体混淆。那些 电线在设计中与网络有关&#xff0c;而不是与定义的设备的路由资源有关 WI…

美创科技入选“2024年度浙江省工业信息安全服务支撑单位”

近日&#xff0c;浙江省经济和信息化厅公布“2024年度浙江省工业信息安全服务支撑单位”名单。 经单位自愿申报、各市经信主管部门初审推荐、专家评审等环节&#xff0c;凭借在工业数据安全领域长期深耕和产品服务实力&#xff0c;美创科技成功入选&#xff01; “2024年度浙江…

深度学习之绘图基础

文章目录 1.实验目的2. 需求3.代码结果图片 1.实验目的 熟练绘制各种图像&#xff0c;为深度学习打基础 2. 需求 给定一个函数&#xff0c;需要你画出原图像以及这个函数在某点切线图像 3.代码 # File: python绘制函数图像以及倒数图像.py # Author: chen_song # Time: 20…

Homebrew使用

官网&#xff1a;https://brew.sh/ 安装&#xff1a; 简介&#xff1a;https://www.jianshu.com/p/f4c9cf0733ea 比如&#xff0c;安装maven: 1、brew install maven 2、查看安装路径&#xff1a;brew list maven 具体参考&#xff1a;https://blog.csdn.net/m0_67402970/arti…

Excel条件格式的经典用法

目录&#xff1a; 一、自动设置填充颜色 二、设置Excel到期自动销毁 三、隔行自动标记 四、美化表格 五、快速突出显示重复值 六、标记空单元格 七、突出显示前N名单元格数值 八、表格添加新内容自动加边框 一、自动设置填充颜色 1、选择内容 首先我们选中表格的数据…

机器学习(V)--无监督学习(六)流形学习

title: 机器学习(V)–无监督学习(二)流形学习 date: katex: true categories: Artificial IntelligenceMachine Learning tags:机器学习 cover: /img/ML-unsupervised-learning.png top_img: /img/artificial-intelligence.jpg abbrlink: 26cd5aa6 description: 流形学习 【降…

支付宝推出NFC(近场通信)碰一碰支付功能

近日&#xff0c;支付宝推出NFC&#xff08;近场通信&#xff09;碰一碰支付功能&#xff0c;支持iPhone、安卓手机。NFC支付早已不是新事物&#xff0c;从二维码支付重回NFC支付&#xff0c;支付宝能撬动市场吗&#xff1f; 根据网友反馈&#xff0c;目前支付宝正在上海静安大…

媒体访谈 | 广告变现痛点有新解,俄罗斯市场成大热门?

今年一季度&#xff0c;中国自主研发游戏在海外市场实际销售收入达到了40.75亿美元&#xff0c;环比和同比均实现了超过5%的增长&#xff0c;出海&#xff0c;仍是游戏产品近些年来最主要的发展模式之一。 当今的市场环境正经历一系列深刻变革&#xff0c;移动游戏广告市场呈现…

超GPT-4o,代码能力超强!Claude 3.5 Sonnet正式发布

6月20日晚&#xff0c;著名大模型平台Anthropic在官网正式发布了Claude 3.5 Sonnet。 据悉&#xff0c;这是Sonnet 是Claude 3.5系列中第一个&#xff0c;也是Anthropic目前最强的视觉模型。随后会发布Haiku和Opus版本。 其性能超过了上一代Claude 3旗舰模型Opus&#xff0c;…

HarmonyOS父子组件传递参数

HarmonyOS父子组件传递参数 1. 使用State和Prop进行父子组件传递———注意是单向同步 Prop装饰器&#xff1a;父子单向同步 注意&#xff1a;只支持单向同步&#xff0c;同时也只能支持string\number\boolean\enum比较简单的类型。 代码 // 使用 props 进行父子组件传值…

【QCustomPlot实战系列】QCPGraph堆叠面积图

在【QCustomPlot实战系列】QCPGraph堆叠图的基础上&#xff0c;使用setChannelFillGraph函数即可 static QCPScatterStyle GetScatterStyle(const QColor& color) {QPen pen(color, 2);return QCPScatterStyle(QCPScatterStyle::ssCircle,pen,Qt::white, 5); }static QCP…

6.21 移动语义与智能指针

//先构造&#xff0c;再拷贝构造//利用"hello"这个字符串创建了一个临时对象//并复制给了s3//这一步实际上new了两次String s3 "hello"; 背景需求&#xff1a; 这个隐式创建的字符串出了该行就直接销毁掉&#xff0c;效率比较低 可以让_pstr指向这个空间…

Java面试题:mysql执行速度慢的原因和优化

Sql语句执行速度慢 原因 聚合查询 多表查询 表数据量过大查询 深度分页查询 分析 sql的执行计划 可以使用EXPLAIN或者DESC获取Mysql如何执行SELECT语句的信息 直接在select语句前加关键字explain/desc 得到一个执行信息表 信息字段分析 possible_keys:可能使用到的索…