Java面试经典 150 题.P122. 买卖股票的最佳时机 II(008)

ops/2024/11/2 4:36:36/

本题来自:力扣-面试经典 150 题

面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台icon-default.png?t=O83Ahttps://leetcode.cn/studyplan/top-interview-150/

题解:

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

思路如下:

与上一道题不同的是,本题可以多次买入,求总共利润

       1. 遍历数组:

                1.1 当key大于下一个数字的时候,卖出是亏损的,所以直接将key替换为下一个数(在下一天买入)

                1.2 当key小于下一个数字的时候,卖出是赚的,直接卖出,并且再买入(将key替换为下一个数)

        2.返回结果

综上所述:代码可以简写为

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


http://www.ppmy.cn/ops/130329.html

相关文章

D-ID 推出能模仿用户的头部动作以及实时互动的 AI 头像

D-ID 宣布推出两种新型 AI 头像 — — Express 和 Premium&#xff0c;旨在提升内容创作的灵活性和人性化。这些头像将为企业在营销、销售和客户支持等领域的视频制作提供便利。用户只需少量文本输入和视觉数据&#xff0c;即可生成更自然的商业视频。 Express 头像可以通过约一…

js实现异步和延时

说明&#xff1a;最近碰到几个需求&#xff0c; 1.使用js实现延时几秒&#xff0c;执行代码的操作 setTimeout 2.使用js实现子线程执行耗时操作&#xff0c;主线程不需要等待子线程任务执行完成&#xff0c;子线程的任务执行完成后&#xff0c;把执行结果回调给主线程&#xff…

BES2600WM---HiLink RM56 EVK

0 Preface/Foreword 0.1 路径 OpenHarmony/device_soc_bestechnic - 码云 - 开源中国 https://github.com/Hi-LinkDuino/RM56 1 环境搭建 1.1 安装依赖工具 sudo apt-get install build-essential gcc g make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc ope…

Linux 进程间通信——管道

目录 0.前言 1. 进程间通信简介 1.1 进程间通信目的 1.2 进程间通信分类 2.匿名管道 2.1什么是管道 2.2一段匿名管道的示例代码 2.3代码解读 2.4 匿名管道运行时的四种情况 2.5 匿名管道的特性 2.6 从文件描述符和内核角度理解管道 3.命名管道 3.1命名管道的原理 3.2命名管道的…

Partition架构

优质博文&#xff1a;IT-BLOG-CN Partition架构 【1】结构&#xff1a; Region至少3个Zone&#xff0c;Zone内至少两个Partition&#xff0c;Partition内至少1个K8S Member Cluster&#xff1b; 【2】故障域&#xff1a; 故障域及核心链路至少Zone内收敛&#xff0c;甚至Part…

C++ 复习记录(个人记录)

1、构造函数&#xff08;constructor&#xff09;是什么 答&#xff1a;类里面定义一个函数&#xff0c; 和类名一样&#xff0c; 这样在我们生成一个对象之后&#xff0c;就会默认调用这个函数&#xff0c;初始化这个类。 子类B继承父类A的情况&#xff0c; 当你调用子类的对…

vue3 Teleport的说明及用法

1、定义&#xff1a; https://cn.vuejs.org/guide/built-ins/teleport#basic-usage <Teleport> 是一个内置组件&#xff0c;它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。 2、基本用法&#xff1a;​ 有时我们可能会遇到这样的场景&am…

STM32HAL库定时器无法进入中断问题

HAL_TIM_Base_Start(): 该函数启动定时器但不会开启中断。它适用于不需要中断处理的定时器配置&#xff0c;仅用于定时器计数功能。使用它时&#xff0c;定时器会启动并在设置的周期内计数&#xff0c;但中断标志不会触发 CPU 中断。 HAL_TIM_Base_Start_IT(): 该函数不仅启动定…