当前位置: 首页 > news >正文

leetcode122-买卖股票的最佳时机II

leetcode 122
在这里插入图片描述

思路

方法一的核心思想是简单的贪心策略。我们每天都看当前价格和下一个价格的差值。如果下一个价格高于当前价格(即diff > 0),那么就认为当天可以买入并在第二天卖出,赚取利润。因此,方法一把所有的价格差(即diff > 0的部分)累加起来,最终得出最大利润

步骤:

遍历整个数组,计算相邻两个价格的差值
如果差值为正(表示价格上涨),则加入利润

时间复杂度:O(n),其中 n 是 prices 数组的长度,因为只需要遍历一遍数组
空间复杂度:O(1),只使用了常量空间

方法二模拟买入和卖出的策略 重点是通过标记是否已经持有股票来区分买入和卖出时机

通过比较当前和前一个价格差(curdiff 和 prediff)来决定买入和卖出。
flag 标志用来表示当前是否持有股票。如果持有股票且价格下跌,则卖出;如果没有股票且价格上涨,则买入。
在循环结束后,检查是否还有未卖出的股票,如果有则在最后时刻卖出
方法二和之前的摆动序列很相似,也可以参考此博文

实现

方法1-贪心算法
var maxProfit = function (prices) {let sum = 0;for (let i = 0; i < prices.length - 1; i++) {let diff = prices[i + 1] - prices[i]if (diff > 0) {// 可以买入sum += diff}}return sum;
};
方法2
var maxProfit = function (prices) {let prediff = 0, curdiff = 0;let sum = 0, flag = false;for (let i = 0; i < prices.length - 1; i++) {curdiff = prices[i + 1] - prices[i];if (curdiff > 0 && prediff <= 0) {// 可以买入sum -= prices[i]flag = trueprediff = curdiff}if (flag && curdiff < 0 && prediff >= 0) {// 可以卖出sum += prices[i]flag = false;prediff = curdiff}}// 到最后都还没有卖出,把最后一个卖掉if (flag) {sum += prices[prices.length - 1]}return sum;
};

相关文章:

leetcode122-买卖股票的最佳时机II

leetcode 122 思路 方法一的核心思想是简单的贪心策略。我们每天都看当前价格和下一个价格的差值。如果下一个价格高于当前价格&#xff08;即diff > 0&#xff09;&#xff0c;那么就认为当天可以买入并在第二天卖出&#xff0c;赚取利润。因此&#xff0c;方法一把所有…...

from PIL import Image 安装失败

正确安装 Pillow (PIL) # 通过 Conda 安装 conda install pillow -c conda-forge# 或通过 Pip 安装 pip install pillow验证安装 在 Python 中测试是否成功&#xff1a; from PIL import Image print(Image.__version__) # 应输出类似 "9.5.0" 的版本号常见问题说…...

DPFunc蛋白质功能预测模型复现报告

模型简介 模型的具体介绍见蛋白质功能预测论文阅读记录2025&#xff08;DPFunc、ProtCLIP&#xff09;_protein functions-CSDN博客 复现流程 仓库&#xff1a;CSUBioGroup/DPFunc 时间&#xff1a;2025.4.5 环境配置 python 3.9.21 & CUDA 11.6 Pytorch: 1.12.0 DG…...

在 Ubuntu24.04 LTS 上 Docker Compose 部署基于 Dify 重构二开的开源项目 Dify-Plus

一、安装环境信息说明 硬件资源&#xff08;GB 和 GiB 的主要区别在于它们的换算基数不同&#xff0c;GB 使用十进制&#xff0c;GiB 使用二进制&#xff0c;导致相同数值下 GiB 表示的容量略大于 GB&#xff1b;换算关系&#xff1a;1 GiB ≈ 1.07374 GB &#xff1b;1 GB ≈ …...

双系统ubuntu20.04不能外接显示器的解决办法

一&#xff0c;更换驱动 首先确定是不是英伟达显卡驱动&#xff0c;如果不是的话&#xff0c;设置里找到附加驱动&#xff0c;更改为NVIdia类型的驱动&#xff0c;更改完成之后重启 这里大部分电脑都可以了&#xff0c;如果不行 二、更改启动方式 重启之后进入BIOS设置&…...

高并发内存池:原理、设计与多线程性能优化实践

高并发内存池是一种专门为多线程环境设计的内存管理机制&#xff0c;其核心目标是通过优化内存分配和释放过程&#xff0c;解决传统内存分配器&#xff08;如malloc/free&#xff09;在高并发场景下的性能瓶颈&#xff0c;显著提升多线程程序的内存访问效率。 目录 一、核心设计…...

03.31-04.06 论文速递 聚焦具身智能、复杂场景渲染、电影级对话生成等五大前沿领域

&#x1f31f; 论文速递 | 2025.03.31-04.06 &#x1f4e2; 聚焦具身智能、复杂场景渲染、电影级对话生成等前沿领域 1️⃣ 具身智能体&#xff1a;从脑启发到安全协作系统 论文标题&#xff1a; Advances and Challenges in Foundation Agents: From Brain-Inspired Intellige…...

Django和Celery实现的异步任务案例

推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 先决条件步骤1:安装依赖项步骤2:配置Celery2.1 创建`celery.py`2.2 更新 `__init__.py`步骤3:配置Django设置步骤4:定义Celery任务…...

DAY 38 leetcode 15--哈希表.三数之和

题号15 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 未去重版本 整体思路&#xff1a;先排序再双指针遍…...

Java项目之基于ssm的个性化旅游攻略定制系统(源码+文档)

项目简介 个性化旅游攻略定制系统实现了以下功能&#xff1a; 个性化旅游攻略定制系统能够实现对用户上传信息&#xff0c;旅游路线信息&#xff0c;景点项目信息&#xff0c;景点信息&#xff0c;标签分类信息等信息的管理。 &#x1f495;&#x1f495;作者&#xff1a;落落…...

链表和数组的效率

访问元素 • 数组&#xff1a;通过索引直接访问元素&#xff0c;时间复杂度为O(1)&#xff0c;速度很快。例如arr[5]可以立即访问到数组arr中索引为5的元素。 • 链表&#xff1a;需要从链表头开始逐个遍历节点&#xff0c;直到找到目标元素&#xff0c;平均时间复杂度为O(n)…...

经典回溯问题———组合的输出

题目如下 思路 代码如下...

WPS宏开发手册——附录

目录 系列文章7、附录 系列文章 使用、工程、模块介绍 JSA语法 JSA语法练习题 Excel常用Api Excel实战 常见问题 附录 7、附录 颜色序列&#xff1a;在excel中设置颜色&#xff0c;只能设置颜色序号&#xff0c;不能直接设置rgb颜色 1、黑色 (Black)…...

【leetcode100】买卖股票的最佳时机

1、题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你…...

uniapp小程序登录失效后操作失灵问题

一开始我在请求返回失效验证时做了登录失效处理然后用uni.switchTab跳转主页的逻辑&#xff0c;结果发现在一天后重新打开小程序或者其他登录挤掉登录验证时有概率导致整个页面失灵无法操作。 经过排查发现&#xff0c;在小程序跳转新页面的时候如果遇到**(过快还是过多&#…...

找树左下角的值(DFS 深度优先搜索)| LeetCode 513

✨ 题目描述 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 提示&#xff1a; 二叉树中至少有一个节点。 &#x1f4c4; 示例 示例 1 输入: root [2,1,3] 输出: 1示例 2 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7&#x1f5…...

【力扣hot100题】(060)分割回文串

每次需要判断回文串&#xff0c;这点比之前几题回溯题目复杂一些。 还有我怎么又多写了循环…… class Solution { public:vector<vector<string>> result;string s;bool palindromic(string s){for(int i0;i<s.size()/2;i) if(s[i]!s[s.size()-1-i]) return …...

中国钧瓷收藏市场现状和风险警示

一、数据权威性与综合维度 本榜单由钧瓷联合体、钧瓷频道及钧瓷数据库三方协同制作&#xff0c;通过10项规则综合评估匠人影响力&#xff0c;涵盖知名度、用户评价、平台指数等多元维度&#xff0c;避免单一指标&#xff08;如拍卖价格&#xff09;的片面性。榜单每月更新&…...

forms实现任务文档功能

说明&#xff1a; forms实现任务文档功能 效果图&#xff1a; step1:C:\Users\wangrusheng\RiderProjects\WinFormsApp26\WinFormsApp26\Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.IO; u…...

字符串的replace、replaceAll、split()方法

参考 字符串的replace、replaceAll、split()方法_字符串replace-CSDN博客...

Kotlin语言进阶:协程、Flow、Channel详解(二)

Kotlin语言进阶:协程、Flow、Channel详解(二) 一、Flow基础 1.1 什么是Flow Flow是Kotlin提供的用于处理异步数据流的解决方案,它建立在协程之上,具有以下特点: 冷流特性:只有在收集时才会开始发射数据背压处理:自动处理生产者和消费者速度不匹配的问题组合操作:提…...

VBA知识学习

文章目录 打开开发工具编写第一个VBA使用VBA调试器 VBA语法 打开开发工具 文件->选项->自定义功能区->开发工具 编写第一个VBA 点击开发工具 ->点击Visual Basic 选择sheet1->右键->插入->模块 Sub 第一个VBA程序()MsgBox "Hello World!&quo…...

JAVA EE_多线程-初阶(二)

1.线程安全 1.1.观察线程不安全 实例&#xff1a; package thread; public class text18 {//定义一个成员变量count,初始值为0private static int count0;public static void main(String[] args) throws InterruptedException {Thread t1new Thread(()->{for(int i0;i&l…...

【Linux】进程预备知识——冯诺依曼、操作系统

目录&#xff1a; 一、冯诺依曼体系结构 &#xff08;一&#xff09;什么是冯诺依曼 &#xff08;二&#xff09;为什么需要冯诺依曼 &#xff08;三&#xff09;冯诺依曼如何操作 二、操作系统概念 &#xff08;一&#xff09;对下硬件管理 &#xff08;二&#xff09;…...

Java入门首周精要:从基础语法到面向对象核心解析

文章目录 Java入门首周精要&#xff1a;从基础语法到面向对象核心解析1.Java类名与文件名的一致性规则2.Java和C语言中char类型的区别3.Java中的注释4.Java中的‘’‘’运算符5.Java的输入输出6.方法&#xff08;重载&重写&#xff09;方法的重载方法的重写 7.面向对象&…...

嵌入式AI开源生态指南:从框架到应用的全面解析

嵌入式AI开源生态指南&#xff1a;从框架到应用的全面解析 引言 随着人工智能技术的迅速发展&#xff0c;将AI能力部署到边缘设备上的需求日益增长。嵌入式AI通过在资源受限的微控制器上运行机器学习模型&#xff0c;实现了无需云连接的本地智能处理&#xff0c;大幅降低了延…...

MCP server的stdio和SSE分别是什么?

文章目录 一、Stdio:本地进程间通信的核心二、SSE:远程通信与实时推送的利器三、Stdio vs SSE:关键差异对比四、如何选择?场景驱动的决策指南五、实战建议与避坑指南实际操作结语在AI应用开发中,MCP(Model Context Protocol)协议正成为连接大模型与外部资源的核心桥梁。…...

哈希表(闭散列)的实现

目录 概念及定义 闭散列的介绍 闭散列底层实现 哈希表的定义 哈希表的构造 哈希表扩容 哈希表插入 哈希表删除 哈希表查找 概念及定义 哈希表&#xff0c;也成为散列表&#xff0c;在C中unordered_set和unordered_map的底层实现依靠的都是哈希表。 map和set的底层是红…...

Shiro学习(六):Shiro整合CAS实现单点登录

一、单点登录介绍 单点登录&#xff08;Single Sign On&#xff09;&#xff0c;简称为 SSO&#xff0c;是比较流行的企业业务整合的解决方案之一。 SSO的定义是在多个[应用]&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。 一般这种单点登录的实现方案&…...

HAProxy-ACL实战篇

HAProxy-ACL实战篇 IP说明172.25.254.101客户端172.25.254.102haproxy服务器172.25.254.103web1172.25.254.104web2 ACL示例-域名匹配 # 172.25.254.102 [rootRocky ~]# cat /etc/haproxy/conf.d/test.cfg frontend magedu_http_portbind 172.25.254.102:80mode httpbalanc…...

以下是针对该 Ansible 任务的格式检查和优化建议

以下是针对该 Ansible 任务的格式检查和优化建议&#xff1a; 目录 一、格式检查原始代码问题分析修正后的标准格式 二、推荐增强功能1. 添加可执行权限2. 显式指定 Shell 解释器3. 添加错误处理 三、完整 Playbook 示例四、验证脚本兼容性五、常见错误总结 一、格式检查 原始…...

C++语言的测试覆盖率

C语言的测试覆盖率分析与实践 引言 在软件开发过程中&#xff0c;测试覆盖率是一项重要的质量指标&#xff0c;它帮助开发者评估代码的测试效果&#xff0c;确保软件的可靠性与稳定性。尤其在C语言的开发中&#xff0c;由于其复杂的特性和丰富的功能&#xff0c;测试覆盖率的…...

如何使用 DrissionPage 进行网页自动化和爬取

在这个技术博客中&#xff0c;我们将向大家展示如何使用 DrissionPage 进行网页自动化操作与数据爬取。DrissionPage 是一个基于 Playwright 的 Python 自动化工具&#xff0c;它允许我们轻松地控制浏览器进行网页爬取、测试以及自动化操作。与其他工具&#xff08;如 Selenium…...

设计模式 Day 3:抽象工厂模式(Abstract Factory Pattern)详解

经过前两天的学习&#xff0c;我们已经掌握了单例模式与工厂方法模式&#xff0c;理解了如何控制实例个数与如何通过子类封装对象的创建逻辑。 今天&#xff0c;我们将进一步深入“工厂”体系&#xff0c;学习抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;&a…...

TensorRT 有什么特殊之处

一、TensorRT的定义与核心功能 TensorRT是NVIDIA推出的高性能深度学习推理优化器和运行时库&#xff0c;专注于将训练好的模型在GPU上实现低延迟、高吞吐量的部署。其主要功能包括&#xff1a; 模型优化&#xff1a;通过算子融合&#xff08;合并网络层&#xff09;、消除冗余…...

SQL注入-盲注靶场实战(手写盲注payload)--SRC获得库名即可

布尔盲注 进入页面 注入点 ’ and 11 and 12 得知为布尔盲注 库名长度 and length(database()) 8 抓包&#xff08;浏览器自动进行了url编码&#xff09;爆破 得知为 12 库名字符 1 and ascii(substr(database(),1,1))112 – q &#xff08;这里如果不再次抓包…...

http://noi.openjudge.cn/_2.5基本算法之搜索_1804:小游戏

文章目录 题目深搜代码宽搜代码深搜数据演示图总结 题目 1804:小游戏 总时间限制: 1000ms 内存限制: 65536kB 描述 一天早上&#xff0c;你起床的时候想&#xff1a;“我编程序这么牛&#xff0c;为什么不能靠这个赚点小钱呢&#xff1f;”因此你决定编写一个小游戏。 游戏在一…...

Windows Flip PDF Plus Corporate PDF翻页工具

软件介绍 Flip PDF Plus Corporate是一款功能强大的PDF翻页工具&#xff0c;也被称为名编辑电子杂志大师。这款软件能够迅速将PDF文件转换为具有翻页动画效果的电子书&#xff0c;同时保留原始的超链接和书签。无论是相册、视频、音频&#xff0c;还是Flash、视频和链接&#…...

Java八股文-List

集合的底层是否加锁也就代表是否线程安全 (一)List集合 一、数组 array[1]是如何通过索引找到堆内存中对应的这块数据的呢? (1)数组如何获取其他元素的地址值 (2)为什么数组的索引是从0开始的&#xff0c;不可以从1开始吗 (3)操作数组的时间复杂度 ①查找 根据索引查询 未…...

btrfs , ext4 , jfs , xfs , zfs 对比 笔记250406

btrfs , ext4 , jfs , xfs , zfs 对比 笔记250406 特性Btrfsext4JFSXFSZFS定位现代多功能传统稳定轻量级高性能大文件企业级存储最大文件/分区16EB / 16EB16TB / 1EB4PB / 32PB8EB / 8EB16EB / 25610⁵ ZB快照✅ 支持❌ 不支持❌ 不支持❌ 不支持✅ 支持透明压缩✅ (Zstd/LZO)❌…...

Meta上新Llama 4,到底行不行?

这周AI圈被Meta的“深夜突袭”炸开了锅。 Llama 4家族带着三个新成员&#xff0c;直接杀回开源模型战场&#xff0c;连扎克伯格都亲自站台喊话&#xff1a;“我们要让全世界用上最好的AI&#xff01;” 但别急着喊“王炸”&#xff0c;先看看它到底强在哪。 这次Meta玩了个狠招…...

显示器工艺简介

华星光电显示器的生产工艺流程介绍&#xff0c;从入厂原料到生产出显示器的整体工艺介绍 华星光电显示器的生产工艺流程主要包括以下几个阶段&#xff0c;从原材料入厂到最终显示器的生产&#xff1a; 原材料准备 玻璃基板&#xff1a;显示器的核心材料&#xff0c;通常采用超…...

音乐软件Pro版!内置音源,听歌自由,一键畅享!

今天给大家介绍一款超实用的音乐软件——LX音乐Pro版。原版LX音乐需要用户自行导入音源才能正常使用&#xff0c;但此次推出的Pro版已经内置了音源&#xff0c;省去了繁琐的操作步骤&#xff0c;使用起来更加便捷 这款软件不仅支持歌曲搜索&#xff0c;还能搜索歌单&#xff0c…...

Spring 中有哪些设计模式?

&#x1f9e0; 一、Spring 中常见的设计模式 设计模式类型Spring 中的应用场景单例模式创建型默认 Bean 是单例的工厂模式创建型BeanFactory、FactoryBean抽象工厂模式创建型ApplicationContext 提供多个工厂接口代理模式结构型AOP 动态代理&#xff08;JDK/CGLIB&#xff09;…...

R语言使用ggplot2作图

在ggplot2中&#xff0c;图是采用串联起来&#xff08;&#xff09;号函数创建的。每个函数修改属于自己的部分。比如&#xff0c;ggplot()geom()...... aes(x, y, colour a,shape a,size a.......) ggplot2中画图常用的五大块内容 数据(data)及一系列将数据中的变量对应到图…...

GenerationMixin概述

类 类名简单说明GenerateDecoderOnlyOutput继承自 ModelOutput&#xff0c;适用于非束搜索方法的解码器-only模型输出类。GenerateEncoderDecoderOutput继承自 ModelOutput&#xff0c;适用于非束搜索方法的编码器-解码器模型输出类。GenerateBeamDecoderOnlyOutput继承自 Mod…...

文心快码制作微信小程序

AI时代来临&#xff0c;听说Baidu Comate也推出了自家的编程工具Zulu&#xff0c;可以从零到一帮你生成代码&#xff0c;趁着现在还免费&#xff0c;试试效果如何。这里以开发一个敲木鱼的微信小程序为例 一、需求分析 写小程序需求文档 首先&#xff0c;第一步我要准确描述…...

flutter provider状态管理使用

在 Flutter 中&#xff0c;Provider 是一个轻量级且易于使用的状态管理工具&#xff0c;它基于 InheritedWidget&#xff0c;并提供了一种高效的方式来管理和共享应用中的状态。相比其他复杂的状态管理方案&#xff08;如 Bloc 或 Riverpod&#xff09;&#xff0c;Provider 更…...

C++——静态成员

目录 静态成员的定义 静态成员变量 编程示例 存在的意义 静态成员函数 类内声明 类外定义 编程示例 静态成员的定义 静态成员在C类中是一个重要的概念&#xff0c;它包括静态成员变量和静态成员函数。静态成员的特点和存在的意义如下&#xff1a; 静态成员变量 1…...

UDP学习笔记(四)UDP 为什么大小不能超过 64KB?

&#x1f310; UDP 为什么大小不能超过 64KB&#xff1f;TCP 有这个限制吗&#xff1f; 在进行网络编程或者调试网络协议时&#xff0c;我们常常会看到一个说法&#xff1a; “UDP 最大只能发送 64KB 数据。” 这到底是怎么回事&#xff1f;这 64KB 是怎么来的&#xff1f;TCP…...