LeetCode-121:Best Time to Buy and Sell Stock (一次股票交易最大利润)

使用LSTM预测股票数据 数据集:股票数据集. 数据集来源::https://www.kaggle.com/dsadads/databases 1 加载数据集 import numpy as np import pandas as pd import datetime stock = pd.read_csv('dataset/SH600519.csv') stock_data = pd.read_csv('dataset/SH600519.csv') stock_data.set_index(['date'], inplace 阅读详情

Question

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

Example 1:

Input: [7, 1, 5, 3, 6, 4]
Output: 5
max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)

Example 2:

Input: [7, 6, 4, 3, 1]
Output: 0
In this case, no transaction is done, i.e. max profit = 0.

Idea

给定一个数组,其中的第i个元素为第i天给出的股票价格,求出一次交易利润。

对于这类问题,只需要对数组进行一次遍历,在遍历过程中记录利润,并在循环过程中保留最大利润即可。

Code

一次遍历—Java
public class Solution {
    public int maxProfit(int[] prices) {
        if(prices == null || prices.length == 0){
            return 0;
        }
        int buy = prices[0];
        int max = 0;
        for (int i=0; i<prices.length; i++){
            if (prices[i] < buy){
                buy = prices[i];
            }else{
                int profit = prices[i]-buy;
                if (max < profit){
                    max = profit;
                }
            }
        }
        return max;
    }
}
  • 处理过程中,要考虑数组为null的情况;
  • 这里在遍历的过程中,一旦遇到价格大于买入价格,就计算利润,保留最大利润,避免两次for循环;
  • 时间复杂度:O(n),空间复杂度:O(1)
【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw) 本文仅根据官网介绍分析,存在纰漏仅供参考。 阅读详情

相关推荐

BLDC方波控制双闭环Simulink仿真模型

无刷直流电机方波控制双闭环Simulink仿真模型搭建详细教程,包括速度PI环、电流PI环、换向逻辑和受控电压源,仿真结果良好。

m0_57458432的博客 6871

股价翻番 人生赢家,python爬取基金 筛选股票

前言: 听说你想要变富?那就沉住气慢慢来吧,没听过这句名言么:“穷人总是不想慢慢的变富”。都想着一夜暴富,中个彩票啥的,可哪有那么幸运呢?总不能像我一样中了78万的彩票,然后自己偷偷的花吧。 想要慢慢的变富有,只要理好财就可以了;小钱靠攒,大钱靠赚!之前我也曾苦于思索如何让自己实现财富自由,所以才有了学习理财的想法,说到理财就不得不说一些理财产品,比如黄金、期货、股票、基金等,先普及一下这些小...

xpt211314的博客 2004

Cisco 路由器 打环测试教程

环 回测试是很常用的一种测试,通常用于检查和分析端口或线路问题。如下图所示,我们在设备端口上用命令loopback(某些端口上命令格式为 loopback diagnostic)使接口从内部将自己发送的信号转接到自己的接收端(如红线所示),通过检查数据发送和接收的情况来判断端口工作状态是否正常。如果 需要对端口进行完全的检测,可以使用符合标准的短跳线将端口收发短接构成环...

weixin_34304013的博客 2024

用Tushare获取A股所有股票历史数据

前面章节已经介绍了如何用Tushare调用A股个股的数据,但是在我们量化投资过程中,经常会需要用到全量数据(即所有A股的历史数据)。废话不多说,直接上代码。 以上就是获取历史上所有A股的历史数据的代码,代码运行后效果如下: 终端显示: 生成存储文件: 安装上述操作,我们便可获得所有A股历史数据。 ...............

malishizu222的博客 4721

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1967

GD32F130之USART多机通信

简介 在多机通信中,一个从机应该只接收它需要接收的数据,且只应该在它需要接收数据时才检测串口。而始终接收RX线上的数据对从机来说是一种负担。 多机通信硬件设计 远距离方案:RS485 板级方案: 静默模式 静默模式有什么作用? 答:如果 USART 处于静默模式,所有的接收状态标志位将不会被置位。 如何进入静默模式? 答:软件可以通过将 USART_CMD 寄存器中MMCMD 位置 1 使 USART 进入静默模式。 如何从静默模式中唤醒? 答:有两种方式可选,①检测到总线

luliplus的博客 301

python 计算当月天数_如何用Python算出股票是上涨天数多还是下跌天数多?

话不多说先上代码:#请使用前复权的日K线数据import os#上涨天数upCount = 0#下跌天数downCount = 0#打开日志文件fs = open(r'C:\Py\result.txt','a+')#循环遍历所有的日K线文件for root, dirs, files in os.walk(r'C:\Py\day'): for file in files: #写日志...

weixin_29745063的博客 1635

基于分水岭分割进行肺癌诊断

近年来,肺癌的发病率和病死率均迅速上升,目前已居所有癌症之首。随着肺癌病人数量的增加,医生对肺部 CT 图像进行研判的工作量也增加了不少,在这种情况下难免工作效率降低甚至会出现误诊。为了帮助医生减少重复性工作,对肺部 CT 图像进行计算机辅助检测的技术就被广泛应用于对肺癌的诊断和治疗过程中。医学 CT 图像处理主要是研究医学图像中的器官和组织之间的关系,并进行病理性分析。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1568

从零开始用Python实现股票量化交易之小白笔记(5)

如上一篇笔记所述,这篇笔记用于记录如何遍历保存日线(前复权)数据。 按以下步骤实现: 1、使用mysql取得所有股票代码和上市日期,返回值是一个二维数组; 2、开始遍历股票,使用for in; 3、查找具体股票在stock_daily_qfq表中最大的交易日期; 4、开启while循环,将日期转化为数值;一年一年地获取日线数据并保存; 5、当开始时间大于当前日期时,结束while循环,...

洛城的博客 7049

【人工智能】《Deep Dive into LLMs like ChatGPT 》—— Andrej Karpathy 第三阶段:强化学习(Reinforcement Learning, RL)

摘要:强化学习(RL)阶段通过让模型自主生成并验证答案,突破SFT阶段的模仿局限,使其在数学、代码等领域形成独特的推理路径。RL流程包括批量生成解答、自动批改筛选正确路径,并采用PPO/GRPO算法优化模型。模型会自发涌现自我检查、回滚等策略,显著提升正确率(如AIME竞赛准确率从15%升至56%)。与SFT模型相比,RL模型具备主动链式思维、验算能力,响应时间更长但效果更优,形成真正的“思考模型”。三阶段对比显示,RL通过可验证题的对错奖励机制,赋予模型超越人类范式的推理能力。

奶爸的编程之路,也就一周冷个三天 149

GPU硬件架构与微架构深度解析28-稀疏计算:稀疏矩阵计算的硬件支持

本文介绍了GPU加速稀疏计算的关键技术。主要内容包括:1)稀疏数据的存储格式(COO、CSR、CSC)及其特点;2)现代GPU的稀疏计算硬件优化,如NVIDIA的稀疏张量核心和内存访问优化;3)稀疏计算在推荐系统、NLP和科学计算等领域的应用案例;4)性能优化技巧,包括存储格式选择、硬件特性利用和混合精度计算等。文章指出,专用稀疏计算技术可显著提升AI和大规模科学计算的效率,相比传统方法可获得5-10倍的性能提升。

2301_79143213的博客 114

Leetcode Best Time to Buy and Sell Stock python 问题解析

Leetcode 121题 Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i....

润泽的博客 286

8、多导睡眠图记录中基于级联自适应滤波器的脑电图信号噪声去除

本文提出了一种基于三级级联自适应滤波器的新型方法,用于去除多导睡眠图(PSG)记录中脑电图(EEG)信号的常见伪迹,包括50/60 Hz电源线干扰、心电图(ECG)和眼电图(EOG)伪迹。该方法采用最小均方(LMS)算法,通过分阶段滤波有效分离并衰减各类噪声,在保留EEG关键神经节律信息的同时显著提升信号质量。研究利用MIT-BIH数据库中的18份真实PSG记录进行验证,结果表明该方法具有无相位失真、实现简单、自适应能力强等优势,适用于睡眠研究及脑机接口等生物医学应用领域。

banana的博客 174

LeetCode 121. Best Time to Buy and Sell Stock 题解

本题是贪心算法的经典应用,也是股票系列问题的入门题目。贪心:维护最低价格,计算最大利润动态规划:状态定义为持有/不持有股票空间优化:只需要维护两个状态通过本题可以深入理解贪心算法和动态规划在股票问题中的应用。

cannonjinx的博客 4040

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

leetcode best-time-to-buy-and-sell-stock(Java)

leetcode题目 best-time-to-buy-and-sell-stock – newcoder 30 买卖股票的最佳时机 – leetcode 121 题目描述 * Say you have an array for which the i th element * is the price of a given stock on day i. * * If you were...

聚沙成塔 484

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode Array 121 122 Best Time to Buy and Sell Stock I II

Array 121. Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i.e.,...

Yi Jiao's Blog 159

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

leetcode 121. Best Time to Buy and Sell Stock

leetcode-121 Best Time to Buy and Sell Stock (Easy) Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transacti...

Night_Thief的博客 166

【LeetCode】解题121:Best Time to Buy and Sell Stock

LeetCode解题 121:Best Time to Buy and Sell Stock Problem 121: Best Time to Buy and Sell Stock [Easy]解题思路Solution (Java) Problem 121: Best Time to Buy and Sell Stock [Easy] Say you have an array for whic...

Fayedily的博客 329

leetcode 121. Best Time to Buy and Sell Stock 买卖股票的最佳时机 动态规划

leetcode 121. Best Time to Buy and Sell Stock 买卖股票的最佳时机 动态规划 leetcode 2020年3月 每日一题打卡 题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,...

weixin_43973433的博客 158

【leetcode】【easy】【每日一题】121. Best Time to Buy and Sell Stock

121. Best Time to Buy and Sell Stock Say you have an array for which theithelement is the price of a given stock on dayi. If you were only permitted to complete at most one transaction (i.e., buy...

lemonade13的博客 145

LeetCode算法题之121. Best Time to Buy and Sell Stock(easy)【Python3动态规划题解】

题目描述: Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the st...

DaMoWangZQ的博客 445

Leetcode 121. Best Time to Buy and Sell Stock (python+cpp)

Leetcode 121. Best Time to Buy and Sell Stock题目解法1:brutal force (TLE)解法2:single pass 题目 这题挺简单的,但是为了记录的完整性,还是写一下。 解法1:brutal force (TLE) 两边循环找出最大值,最naïve的方法 python代码如下: class Solution: def maxProfit(self, prices: List[int]) -> int: _max = 0

qq_37821701的博客 144

Leetcode 121. Best Time to Buy and Sell Stock

Leetcode 121. Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (i.e...

fengran_mark的博客 140

leetcode309&121&122.Best Time to Buy and Sell Stock 问题

本次总结的是leetcode上著名的几个问题:Best Time to Buy and Sell Stock 1,2 Best Time to Buy and Shell Stock With Cooldown问题。问题的大概框架就是, 给你一个代表每天物品价格的数组,你可以买,卖商品,要求得到最大的收益。这里先来谈一下这个问题: Best Time to Buy and Sell Stoc

写代码的柯长的博客 327

LeetCode-122:Best Time to Buy and Sell Stock II (多次股票交易最大利润)

数组第 i 个元素是第 i 天股票价格,寻找最大利润,可以进行多交易

大树先生的博客 1547

【Leetcode】121. 最佳买卖股票的时间 I(Best Time to Buy and Sell Stock)

Leetcode - 121 Best Time to Buy and Sell Stock (Easy) 题目描述:最多交易一次。 解法一:DP public int maxProfit(int[] prices) { if(prices == null || prices.length == 0) return 0; int[][] mp = new int[prices.le...

厉兵秣码 175
上一篇: LeetCode-268:Missing Number(寻找缺失数字)
下一篇: LeetCode-66:Plus One (数组看作数据 加1)
大树先生的博客
博客等级 码龄9年 2692粉丝 200原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值