代码随想录算法训练营之JAVA|第二十八天|122. 买卖股票的最佳时机 II

news2024/11/25 10:29:56

今天是第28天刷leetcode,立个flag,打卡60天。

算法挑战链接

122. 买卖股票的最佳时机 IIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/

第一想法

题目理解:找到一个升序的段,然后累加每一个升序的段头尾的差值。

题目比较简单,大概要完成的事情就是:找到一个升序段,保存头和尾,计算差值。

怎么找到升序的段呢?方法也是很简单的。

将数组的第一个赋值给头和尾,然后遍历数组。

        如果当前值 小于 尾,计算差值,并且将当前值赋值给 头

        将当前值赋值给 尾

循环结束之后需要判断一下最后一次是否需要卖出。

代码如下:

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

看完代码随想录之后的想法 

贪心算法的写法,先贴代码:

// 贪心思路
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;
    }
}

 大概的思路就是,如果当前值小于前一个值,那么就计算值。

简单粗暴!!!!!

今日收获

贪心算法的核心:以局部最优达到全局最优

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

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

相关文章

ORCA优化器浅析——CXform base class for all transformations

CXform CXforml类作为所有transformation的基础类&#xff0c;其包含了pattern成员m_pexpr。主要是在exploration和implementation expression流程中使用&#xff0c;主要调用Transform函数。其还包含返回相关xforms的集合函数&#xff0c;比如PbsIndexJoinXforms等。 class …

Centos7多台服务器免密登录

准备四台服务器: docker0 docker1 docker2 docker3 在docker0服务器上生成公钥和私钥 [rootwww ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory /root/.ssh. Enter passp…

2023年03月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;字符长方形 给定一个字符&#xff0c;用它构造一个长为4个字符&#xff0c;宽为3个字符的长方形&#xff0c;可以参考样例输出。 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 输入只有一行&#xff0c; 包含一个字符。 输出 该字符构成的长方形…

Mysql主从分离

一、前言 某个应用场景中&#xff0c;在操作数据库这部分&#xff0c;往往是数据库的读取往往大于数据库的写入&#xff0c;当读取数据达到数据库的瓶颈时&#xff0c;性能下滑&#xff0c;影响数据的写入&#xff0c;导致整个应用的不可用。为了解决这个问题&#xff0c;这时&…

java热插拔组件 SPI机制

文章目录 前言一、热插拔(spi机制)是什么&#xff1f;二、使用步骤1.利用java META-INF2.利用google spi3. 测试效果 总结 前言 在项目中,如果想要增加项目的灵活性,健壮性, 高逼格,那么你要对于java中的一些机制有了解; 例如: java中的spi机制spring中的spring.factories 等…

QtCreator ui设置界面 Layout 的属性 layoutStretch

layoutStretch 用于控制Layout在被用户进行缩放时。里面控件的缩放比例。如一个水平布局里面有两个控件 一个 QLineEdit 和 QPushButton。首先将两个控件的尺寸策列的水平策略都设置为Expanding。此时在将包含这两个控件的水平布局的 layoutStretch 进行如下设置。 运行程序就…

权衡与选择:如何巧妙管理项目需求的优先级

在项目管理领域&#xff0c;处理和管理需求可能是最具挑战性的环节之一。每一个项目都充满了各种需求&#xff0c;从业务需求到技术需求&#xff0c;从用户需求到系统需求。而如何有效地为这些需求排列优先级&#xff0c;不仅会影响项目的进度和资源分配&#xff0c;还会直接关…

Azure创建第一个虚拟机

首先&#xff0c;登录到 Azure 门户 (https://portal.azure.com/)。在 Azure 门户右上角&#xff0c;点击“虚拟机”按钮&#xff0c;并点击创建&#xff0c;创建Azure虚拟机。 在虚拟机创建页面中&#xff0c;选择所需的基本配置&#xff0c;包括虚拟机名称、操作系统类型和版…

threejs纹理的使用

实现地板的效果&#xff0c;需要导入3张图片&#xff0c;第一种样式&#xff0c;第二种&#xff0c;木板间的间隙&#xff0c;第三种&#xff0c;木板的粗细图片。先注册一个物体属性&#xff0c;在物体属性上加上图片&#xff0c;注册代码如下图&#xff1a; const floorMat …

乡村振兴指数与其30余个原始变量数据(2000-2022年)

乡村振兴是当下经济学研究的热点之一&#xff0c;对乡村振兴进行测度&#xff0c;是研究基础。测度乡村振兴水平的学术论文广泛发表在《数量经济技术经济研究》等顶刊上。整理了2000-2022年城市层面的乡村振兴指数与其30余个原始变量数据&#xff0c;供大家使用。 数据来源&…

大数据Flink(六十二):批处理的入门案例

文章目录 批处理的入门案例 一、示例 二、​​​​​​​开发步骤

Ae 效果:CC Environment

透视/CC Environment Perspective/CC Environment CC Environment&#xff08;CC 环境&#xff09;主要用于创建 3D 环境映射&#xff0c;可以将一个 2D 图像转换为 3D 空间的反射或折射。该效果通常用于模拟真实世界的全景相机镜头和环境反射。 在实际操作中&#xff0c;可将效…

阿里云服务器带宽计费模式怎么选?有什么区别?

阿里云服务器公网带宽计费模式按固定带宽和按使用流量哪个划算&#xff1f;阿里云百科以北京地域为例&#xff0c;按固定带宽计费1M带宽一个月23元&#xff0c;按使用流量计费1GB流量0.8元&#xff0c;如果云服务器带宽使用率低于10%&#xff0c;那么首选按使用流量计费&#x…

中国省级、城市-数字经济创新创业、分项指数(2010-2020年)

一、数据介绍 数据名称&#xff1a;中国省级、城市-数字经济创新创业、分项指数 数据年份&#xff1a;2010-2020年 数据范围&#xff1a;31省、336个城市 数据来源&#xff1a;北大企业大数据研究中心 二、参考文献 参考文献&#xff1a; 戴若尘,王艾昭,陈斌开.中国数字…

【C++】模拟实现map和set(用红黑树进行封装)

模拟实现map和set 前言正式开始简单框架data的比较迭代器operatoroperator-\-[ ]重载 前言 本篇以前一篇红黑树模拟实现插入功能为基础&#xff1a;【C】红黑树模拟实现插入功能(包含旋转和变色) 本篇中不会再讲解关于旋转和变色的知识。只是对于红黑树进行简单的封装。 如果…

java操作mongdb【超详细】

Java操作 搭建 搭建 依赖 <!--mongodb--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>配置文件 spring:data:mongodb:host…

opencv图片换背景色

#include <iostream> #include<opencv2/opencv.hpp> //引入头文件using namespace cv; //命名空间 using namespace std;//opencv这个机器视觉库&#xff0c;它提供了很多功能&#xff0c;都是以函数的形式提供给我们 //我们只需要会调用函数即可in…

烧写PYNQ镜像到SD卡

一&#xff0c;安装 Win32diskimager 首先将Micro SD卡插入读卡器的卡槽中&#xff0c;然后再将读卡器插入计算机USB接口&#xff0c;此时计算机将会识别到插入的可移动磁盘。双击打开Win32DiskImager-1.0.0.zip 压缩文件&#xff0c;里面win32diskimager-1.0.0-install.exe文…

ORCA优化器浅析——CDXLOperator Base class for operators in a DXL tree

如上图所示&#xff0c;CDXLOperator作为Base class for operators in a DXL tree&#xff0c;其子类CDXLLogical、CDXLScalar、CDXLPhysical作为逻辑节点、物理节点和Scalar节点的DXL表示类&#xff0c;因此其包含了这些类的共同部分特性&#xff0c;比如获取其DXL节点表示的函…

CNN之图像识别

文章目录 1. 图像识别1.1 模式识别1.2 图像识别的过程1.3 图像识别的应用 2. 深度学习发展2.1 深度学习为何崛起2.2 分类与检测2.3 常见的卷积神经网络 3. VGG3.1 VGG163.2 VGG16的结构&#xff1a;3.3 使用卷积层代替全连接3.4 1*1卷积的作用3.5 VGG16代码示例 4. 残差模型-Re…