LeetCode初级算法——数组:买卖股票的最佳时机 II

2023-11-07

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

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

示例 1:

输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 =
5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。

示例 2:

输入: [1,2,3,4,5] 输出: 4 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 =
5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。
因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。

示例 3:
输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

解题思路:
咋一看,好难啊,什么鬼玩意?
仔细想想这道题,其实就是每"有利可图"的时候,也就是 prices[i] 小于数组元素 prices[i+1] 时,我们就有利润——可以卖股票,这个值所代表的就是当前一次交易的利润。
接下来,指针后移,继续遍历,如果 prices[i] 大于或等于数组元素 prices[i+1],我们直接跳过,因为这个时候交易不会带来利润。
这样遍历到最后再求和,我们就得到了最大的利润。

实现代码:

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

执行结果:在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode初级算法——数组:买卖股票的最佳时机 II 的相关文章

随机推荐

  • 针对-128到127之间的数据,做了一个数据缓冲池

    package test import java util HashMap import java util HashSet import java util Map import java util Set import org apac
  • 模板类中友元函数的声明与定义

    cpp 全部在Test h这个头文件中 ifndef TEST H define TEST H template
  • 数据如何赋能?

    该问题已同步到小程序 全栈面试题 问题 大家经常动不动就提到数据赋能 那么数据是如何为业务赋能的呢 就此问题 各位大佬们展开了激烈的讨论 讨论 congrats 对于中大型企业 数据已经成为了业务展开工作的基本构成部分了 比如每天运营 产品
  • 10、MyBatis的自动生成代码、PageHelper分页插件

    文章目录 代码生成 方式一 官方jar 方式二 IDEA 插件及其应用 PageHelper 代码生成 方式一 官方jar 为了简化MyBatis的编写 官方推出了一个工具 mybatis generator Java编写的 通过这个工具可
  • log4j的介绍及使用

    一 Log4j简介 Log4j有三个主要的组件 Loggers 记录器 Appenders 输出源 和Layouts 布局 这里可简单理解为日志类别 日志要输出的地方和日志以何种形式输出 综合使用这三个组件可以轻松地记录信息的类型和级别 并
  • SingalR自托管(self-host)实例

    实例说明 Microsoft AspNet SignalR SelfHost 用于创建自托管服务器端 Microsoft AspNet SignalR JS 用于创建Web浏览器客户端 Microsoft AspNet SignalR Cl
  • 图解通信原理与案例分析-32:物流仓储、智能交通中的RFID通信技术详解

    前言 RFID射频身份识别 是一个非常成熟的通信技术 在仓储物流 交通运输等行业有广泛的应用 本文就将介绍RFID的通信原理 目录 第1章 RFID射频身份识别概述 第2章 RFID网络架构 2 1 RFID通信无线通信 2 2 RFID系
  • pcie总线协议入门基础知识

    1 PCIe基础知识 PCI Express是一种高速串行计算机扩展总线标准 它原来的名称为 3GIO 是由英特尔在2001年提出的 旨在替代旧的PCI PCI X和AGP总线标准 与大多数总线一样 PCIe总线也包括电气属性和协议组成两部
  • Docker 安装 Nginx

    方法一 通过 Dockerfile构建 创建Dockerfile 首先 创建目录nginx 用于存放后面的相关东西 edualiyun edualiyun mkdir p nginx www nginx logs nginx conf ww
  • 光纤收发器指示灯及常见问题详解

    一 光纤收发器6指示灯的含义 光纤收发器有6个LED指示灯 它们显示了收发器的工作状态 根据LED所示 就能判断出收发器是否工作正常和可能有什么问题 从而能帮助找出故障 它们的作用分别如下所述 PWR 灯亮表示DC5V电源工作正常 FX 1
  • VisualStudio2019配置OpenCV4.5.0

    目录 一 下载安装OpenCV4 5 0 二 配置环境变量 三 配置VS2019 四 测试代码 五 测试结果 一 下载安装OpenCV4 5 0 1 进入opencv官网 2 点击Release进入Release界面 选择Windows版本
  • unity3d的血量减少和增加的数字显示制作(NGUI)

    首先说明一下为什么要放在NGUI里面讲这节内容 因为即将要用到了一个插件HUD Text 这个插件必须是在已经安装了NGUI的前提下才能安装并使用 首先安装HUD text这个插件 这个插件里面最重要的就是HUD Text这脚本下图红色线标
  • freeswitch/conference分析

    member由conference function进入 1 查找会议 如果会议不存在 则 2 创建会议 创建会议画布 conference video parse layouts 根据conference layouts conf 配置创
  • CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection---CVPR 2020

    仅翻译了与目标识别相关的内容 论文地址 https arxiv org pdf 2003 09119 pdf 源码地址 https github com KiveeDong CentripetalNet 目录 Abstract 1 Intr
  • SM3密码杂凑算法和SM2数字签名算法的PDF签名方法

    支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法 其特征在于 包括以下步骤 1 发送端发送待签名的PDF文档 2 接收端存在签名者的数字证书 接收端获取PDF文档 对签名者的数字证书的有效性进行检查 3 用SM3密码杂凑算法对获取
  • JS Base64 内容,数字加密、解密

    加密 let message Hello World let encoded btoa message console log encoded SGVsbG8gV29ybGQh 解密 let decoded atob encoded con
  • java 判断电脑盘符是否存在

    public static void lkm FileSystemView fileSystemView FileSystemView getFileSystemView 获取FileSystemView对象 File roots File
  • 全套大数据平台个人开发环境手动搭建(CDH版本) 伪分布式

    文章目录 1 简介 2 准备 2 1 关闭防火墙 2 2 免密登陆 3 通用配置 3 1 安装包准备 3 2 统一环境变量配置 1 Hadoop配置 1 1 env文件 1 2 core site xml 1 3 hdfs site xml
  • C# 扫描识别图片中的文字(.NET Framework)

    环境配置 本文以C 及VB NET代码为例 介绍如何扫描并读取图片中的文字 本次程序环境如下 Visual Studio版本要求不低于2017 图片扫描工具 Spire OCR for NET 图片格式 png 这里的图片格式支持JPG P
  • LeetCode初级算法——数组:买卖股票的最佳时机 II

    122 买卖股票的最佳时机 II 给定一个数组 它的第 i 个元素是一支给定股票第 i 天的价格 设计一个算法来计算你所能获取的最大利润 你可以尽可能地完成更多的交易 多次买卖一支股票 注意 你不能同时参与多笔交易 你必须在再次购买前出售掉