【数组】121. 买卖股票的最佳时机(简单)

day44| 121. 买卖股票的最佳时机122买卖股票的最佳时机II123买卖股票的最佳时机III 188买卖股票的最佳时机IV309买卖股票的最佳时机含冷冻期714.买卖股票的最佳时机含手续费 设想的对象是手里的现金;持有股票的话,手里只有股票无现金,一定钱是少的;最后肯定是不持有股票的时候手里头的现金多;我理解的总体思路:因为最后一定是不持有手里的现金多,而不持有的最大值需要由前一天持有的最大值推出,所以每天都需要分别求持有和不持有的各自的max;dp五部曲💕dp数组及其下标含义:设置dp[i][0]和dp[i][1]dp[i][0]表示第i天持有这只股票手里的现金最大是多少dp[i][1]表示第i天不持有这只股票手里的现金最大是多少。 阅读详情

【题目】
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。
【示例 1】
输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
【示例 2】
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
【代码】
逆序正序,两次遍历
空间复杂度:O(n)
时间复杂度:O(n)

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int len=prices.size(),maxgap=0;
        vector<int> rs=prices;
        for(int i=len-2;i>=0;i--)
            rs[i]=max(rs[i+1],rs[i]);
        for(int i=1;i<len;i++)
            maxgap=max(maxgap,rs[i]-prices[i-1]);
        return maxgap;
    }
};

【法二】
一次遍历,时间复杂度O(n),空间复杂度O(1)

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int maxgap=0,minnum=1e9;
        for(auto x:prices){
            minnum=min(minnum,x);
            maxgap=max(maxgap,x-minnum);
        }
        return maxgap;
    }
};

【常规暴力法:超时】通过测试数:199/200

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int profit=0,maxgap=0,gap=0,len=prices.size();
        for(int i=0;i<len;i++){
            for(int j=i+1;j<len;j++){
                gap=prices[j]-prices[i];
                maxgap=max(maxgap,gap);
            }
        }
        return maxgap;
    }
};
基于MicroBlaze与LWIP的FPGA以太网通信实战指南 本文详细介绍了基于MicroBlaze软核处理器与LWIP协议栈的FPGA以太网通信实现方案。通过Vivado工具链配置硬件设计,结合LWIP轻量级TCP/IP协议栈优化,提供高效、低成本的嵌入式网络解决方案,适用于工业控制等场景。文章包含硬件设计、软件配置及常见问题排查等实战指南。 阅读详情

相关推荐

STRING数据库的蛋白质相互作用(PPI)网络分析

在转录调控相关的文献中,我们经常能够看到这样的蛋白质相互作用网络(protein protein interaction network,PPI network)。具体而言,这些相关的文献中首先通过RNA-seq、表达谱芯片或者蛋白质组分析等,找到了在不同分组样本间一系列的差异表达基因或蛋白。

weixin_43029125的博客 9458

leetcode121:买卖股票的最佳时机Ⅰ(贪心思想入门)

这篇文章讲解了LeetCode 121题"买卖股票的最佳时机"的贪心算法解法。题目要求只能进行一次买卖操作,找出最大利润。核心思路是通过一次遍历,维护一个历史最低价变量prevMin,计算当前价格与prevMin的差值作为潜在利润,并不断更新最大利润。这种方法的时间复杂度为O(n),空间复杂度为O(1)。文章还介绍了贪心算法的特点,提供了Java代码实现,并分析了关键点。该解法通过局部最优选择达到全局最优,是典型的贪心算法应用。

lyh2004_08的博客 1510

手把手教你用vivado2018.3为复旦微JFMQL15T打IP补丁(含环境变量配置技巧)

本文详细介绍了在Vivado 2018.3环境中为复旦微JFMQL15T开发板打IP补丁的全流程,包括环境变量配置、IP缓存管理等关键步骤。通过实战验证的解决方案,帮助工程师快速搭建开发环境,解决国产芯片开发中的常见问题,提升开发效率。

weixin_30374009的博客 735

一文搞定所有 — — 买卖股票的最佳时机问题

第

SoyMilk的博客 1446

Bob-Smith电路在千兆以太网(1000BASE-T)中的优化设计与性能分析

本文深入探讨了Bob-Smith电路在千兆以太网(1000BASE-T)中的关键作用与优化设计。分析表明,相较于单纯追求75欧姆电阻的精确匹配,优化重点应转向PCB布局对称性、高频元件选型及共模路径完整性,以有效抑制共模噪声、提升信号完整性,并确保系统通过EMC测试。

weixin_29281941的博客 279

假期搞定!2026国社科申报AI全攻略指南:从选题到创新,7大核心要点手把手教你!

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。你的任务是:用高度凝练的方式说明在(某一明确国家战略 / 政策方向,如:中国式现代化、共同富裕、基层治理现代化、数字中国、文化强国、国家安全等)背景下,我究竟要研究一个什么“具体而可操作的问题”。

智能AI让学术科研更容易 625

LeetCode 121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例 1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1

tomjobs的博客 1764

大模型应用开发 100 天:Python + LLM 从入门到精通 day01~环境搭建与开发工具

Day 1 正式开启《大模型应用开发 100 天》实战旅程。本文聚焦 AI 开发最容易被忽视却至关重要的环境搭建环节,系统讲解基于 pyenv、uv、VS Code 构建一套可复现、项目隔离的标准化 Python 开发工具链。你将掌握多 Python 版本管理、极速依赖安装、虚拟环境隔离、代码规范配置完整流程,配套可直接运行的环境校验脚本与 Mermaid 架构图,规避版本冲突、环境污染等高频踩坑问题,为后续 99 天 LLM 项目开发筑牢底层基础。来自华北理工大学段一凡的博客文章

段一凡的博客 248

<LeetCode>121. 买卖股票的最佳时机

假设你有一个数组,其中第 i 个元素是一支给定股票第 i 天的价格。 如果您只能完成最多一笔交易(即买入和卖出一股股票),则设计一个算法来找到最大的利润。 示例 1: 输入: [7, 1, 5, 3, 6, 4] 输出: 5 最大利润 = 6-1 = 5(不是 7-1 = 6, 因为卖出价格需要大于买入价格)   示例 2: 输入: [7, 6, 4, 3, 1] 输出: 0 在

Sonihr的犀牛园 4736

RK3588+YT9215快速拓展以太网口

YT9215支持7个端口的非阻塞数据传输,确保高效的数据流处理;在开发过程中,最重要的一点就是YT9215与RK3588的GMAC连接和配置部分,下面是gmac1对应dtsi文件的修改,包括注释掉rgmii_phy1对应的mdio1,以及gmac1对应的phy-handle部分,同时将gmac1修改成1000Mbps全双工模式。这就是最简单,最快速的RK3588拓展网口的方法了,如果需要用到交换芯片的其他功能,那就不可以直接使用原厂提供的bin,而是需要对YT9215进行另外的驱动开发。

带着耳朵取流浪的博客 2796

交通仿真软件:SUMO_(1).SUMO基础知识

SUMO 中的交通网络由节点(junctions)和边(edges)组成。节点表示交叉口或路网的连接点,边表示连接节点之间的道路。节点:节点文件(.nod.xml)定义了网络中的所有节点。每个节点有一个唯一的 ID 和坐标。</边:边文件(.edg.xml)定义了连接节点的边。每个边有一个唯一的 ID、起点节点 ID 和终点节点 ID。</车辆文件(.vtype.xml)定义了不同类型的车辆。每个车辆类型可以有不同的参数,例如长度、最大速度、加速度等。</

kkchenjj的博客 1433

Leetcode 121:买卖股票的最佳时机

原题:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利...

想做程序媛的小太阳 6883

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[数组][简单]121.买卖股票的最佳时机

tags: 简单 完成 数组 flag: green style: summer date: ‘2019-7-11’ 121.买卖股票的最佳时机 一、题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6...

GJXAIOU 的 优快云 博客 131

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java - LeetCode121.买卖股票的最佳时机(简单代码,简单思路)(数组)

LeetCode121.买卖股票的最佳时机 思路: 设置入手最小值和卖出后最高利润变量。 遍历整个数组,现值小于最小值,就将它设为最小值; 计算最小值与当前股价之间的利润,算出最大值。 class Solution { public int maxProfit(int[] prices) { int maxProfit = 0; int min = prices[0]; for(int i = 1; i < prices.length;

weixin_51136573的博客 236

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LeetCode 面试经典 150_数组/字符串_买卖股票的最佳时机(77_121_C++_简单)(贪心)

LeetCode 面试经典 150_数组/字符串_买卖股票的最佳时机(77_121_C++_简单) 题目描述: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

huayimenghan的博客 435

【Day3】【数组/简单】【LeetCode-Hot100-121.买卖股票的最佳时机】【每日至少一道】【刷题】通过记录来监督自己做题呀

参考Hot100-121 题目: 题解: 1. 2. package com.shuzu; /** * 121.买卖股票的最佳时机https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ * 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 * * 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 * * 注意:你不能在买入股票前卖出股票。 *

weixin_43769946的博客 196

代码随想录算法训练营第49天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

代码思路dp[i][0] 表示第i天持有股票所得最多现金dp[i][1] 表示第i天不持有股票所得最多现金当第i天继续持有,一共两种状态:还有就是之前就买入, 第i天才买入分别是 dp[i][0] : dp[i-1][0] 和 -prices[i]当第i天不持有,也就是第i天那天卖出,或者是之前就卖出了,分别是dp[i - 1][1]和 prices[i]

hello_brucebat的博客 141

(C++)Leetcode狂刷200题——标签“数组篇--简单难度10道 #121. 买卖股票的最佳时机

第五道题 #121. 买卖股票的最佳时机 1、暴力直接解法 时间复杂度:O(n^2),空间复杂度:O(1)。 class Solution { public: int maxProfit(vector<int>& prices) { int prices_size = prices.size(); if(prices_size == 0) return o; //如果数组为空直接返回0. int MAX = 0; //设置

electrical_engineer0的博客 243

LeetCode刷题之121.买卖股票的最佳时机

LeetCode刷题之121.买卖股票的最佳时机 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。 示例: ...

胡萝卜 234

【力扣】每日2题_121.买卖股票的最佳时机+88.合并两个有序数组

今天做了两道简单题,有手就会。

qq_41929830的博客 757

【LeetCode每日一题】——121.买卖股票的最佳时机

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

IronmanJay 317

【LeetCode】121. 买卖股票的最佳时机 I(给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。)、122. 买卖股票的最佳时机 II、123. 买卖股票的最佳时机 III

121. 买卖股票的最佳时机 I 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 ...

qq_43109561的博客 5622

LeetCode 121. 买卖股票的最佳时机(简单)

我们可以在遍历数组的同时,记录到目前为止见到的最低价格,并计算如果在这个最低价格买入、当前价格卖出能获得的利润。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。更聪明的方法是利用一个关键洞察:要获得最大利润,我们需要以尽可能低的价格买入,然后在之后尽可能高的价格卖出。例如 [1,2,3,4,5],最大利润为4,应该在第一天买入,最后一天卖出。例如 [7,6,4,3,1],最大利润为0,因为没有可以盈利的交易机会。

ZeroBugX的博客 763

LeetCode:121. 买卖股票的最佳时机

121. 买卖股票的最佳时机 给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例 1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 ...

梦~' 264

Leetcode No.121 买卖股票的最佳时机(贪心)

题目描述 给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例 1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...

727
上一篇: 【数组-简单】485. 最大连续1的个数(CPP、Python-groupby)
下一篇: 【数组】661. 图片平滑器
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值