【牛客刷题-算法】NC7 买卖股票的最好时机(一)

个人主页:清风莫追
系列专栏:牛客刷题——数据结构与算法

文章目录

  • 1.题目描述
  • 2.算法设计思路
  • 3.代码实现
  • 4.运行结果


1.题目描述

描述
假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益

  1. 你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天
  2. 如果不能获取到任何利润,请返回0
  3. 假设买入卖出均无手续费

数据范围 0 ≤ n ≤ 1 0 5 , 0 ≤ v a l ≤ 1 0 4 0 \le n \le 10^5 , 0 \le val \le 10^4 0n105,0val104
要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)

在这里插入图片描述
注:图片来自牛客网

2.算法设计思路

一种比较暴力的想法,因为一共只能进行一次买入和卖出,所以只要求每一天与后面所有天数股价的差值,然后从中找出差值(后面的股价 - 前面的股价)最大组合即可。这样的时间复杂度将达到 o ( n 2 ) o(n^2) o(n2)

这里介绍另一种更加简单的方法。我们可以在一次遍历股票价格的过程中,动态地维护一个记录往日最低股价的变量,并与当日的股价相比较,则得到当日卖出股票能拿到的最大利润。

举个例子,对于输入的股价序列[8,9,2,5,4,7,1],我们可以在遍历的过程中,像下面的表格一样从左往右地更新数据。这样的时间复杂度将为 o ( n ) o(n) o(n),空间复杂度为 o ( 1 ) o(1) o(1)

天数1234567
今日股价8925471
今日以前最低股价882222
今日卖出最高利润1-6325-1
历史最大利润(含今日)113355

3.代码实现

注:这里并不是完整代码,而只是核心代码的模式

/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param prices int整型一维数组 * @param pricesLen int prices数组长度* @return int整型*/#define big 987654321 //第一天以前的往期最低股价不存在,将其表示为无穷大int maxProfit(int* prices, int pricesLen ) {// write code hereint min = big; //维持往期最低股价int max = 0; //维持截至今日的最高利润int t = 0; //当天的最大化利润for(int i = 0; i < pricesLen; i++){t = prices[i] - min;if(t > max){max = t;}if(prices[i] < min){min = prices[i];}}return max;
}

4.运行结果

成功通过!
在这里插入图片描述


感谢阅读

个人主页:清风莫追

CSDN话题挑战赛第2期
参赛话题:学习笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40979.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode每日一题·买卖股票问题(Python)

leetcode每日一题买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。…

【题解】股票买卖

题目描述 最近越来越多的人都投身股市&#xff0c;阿福也有点心动了。谨记着“股市有风险&#xff0c;入市需谨慎”&#xff0c;阿福决定先来研究一下简化版的股票买卖问题。 假设阿福已经准确预测出了某只股票在未来N天的价格&#xff0c;他希望买卖两次&#xff0c;使得获得的…

一道关于股票买卖的算法编程题

前段时间在segmentfault回答了一个关于算法的问题,感觉很有趣,记录下来. 题目是这样的: 给定数组n&#xff0c;包含n天股票的价格price. 一个人一共最多可以买2手股票&#xff0c;但在第一手股票卖出前不能买入第二手股票。如果不买&#xff0c;收益为0.假设每手只买1股。计算…

股票买卖题型 详解

股票买卖题型 买卖股票最佳时机 ​ 第一题贪心算法应该快很多 就 不讲 。 此类问题 思路大致一致 ​ 第二题也可用贪心做 ans max(ans, ansprices[i]-prices[i-1]); 分析&#xff1a; 共有两个属性值 &#xff0c; 未持有 和持有股票 定义 f[ i ] [ 2 ] f[ i ] [ 0 ]表示 第…

【算法题】股票买卖问题解法详解

本解法是股票问题的通用解法&#xff0c;在leetcode上对应以下题&#xff1a; 买卖股票的最佳时机 买卖股票的最佳时机 II 买卖股票的最佳时机 III 买卖股票的最佳时机 IV 买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期 下面来说通用解法&#xff1a; 这类问题…

贪心算法(股票买卖例题)

贪心算法定义&#xff1a; 贪心算法&#xff08;又称贪婪算法&#xff09;是指&#xff0c;在对 问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出的是在某种意义上的局部 最优解。 贪心算法不是对所有…

买卖股票的最佳时机 II -数学推导证明贪心思路 -leetcode122

问题说明来源leetcode 一、问题描述: 122. 买卖股票的最佳时机 II 难度中等1941 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可…

产品开发利器:Axure及实例

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 简介Axure优点Axure和蓝湖Axure实例 简介 Axure是一个最便捷、最热门的界面原型设计工具&#xff0c;它不需要任何编程或写代码基础&#xff0c;就可以设…

ChatGPT伪原创:智能AI助手助力文章创作

智能AI助手助力文章创作 随着人工智能技术的不断发展&#xff0c;智能AI助手正逐渐成为文章创作的得力工具。无论是在写作过程中提供灵感和创意&#xff0c;还是在文章编辑和校对中提供帮助&#xff0c;智能AI助手都能为作者节省时间和精力&#xff0c;提高文章质量。本文将从…

2022年度强化学习领域19个重要进展汇总

本文汇总梳理了2022年度&#xff0c;强化学习领域的发展重大事件、以及落地应用等方向中突出代表&#xff0c;整理难免带有个人观点&#xff0c;欢迎大家一起讨论。本文整理自“深度强化学习实验室”公众号&#xff0c;阅读原文请点击这里。 【1】MIT强化学习新算法EIPO&#…

分割一切?手把手教你部署SAM+LabelStudio实现自动标注

一&#xff0c;前言 最近Open-mmlab开源了Playground项目&#xff0c;将最近引起CV界轰动的SAM(Segment Anything Model)模型和Open-mmlab多个视觉框架相结合&#xff0c;可实现多种视觉任务的自动标注&#xff0c;本文将采用Open-mmlab的Playground开源项目&#xff0c;使用S…

老婆饼真有老婆,驴肉火烧有头驴--文言一心

困扰大家很久的问题&#xff1a;老婆饼里为啥没老婆&#xff0c;鱼香肉丝里为啥没有鱼。 最近&#xff0c;百度推出自己的AI大模型“文心一言”&#xff0c;李彦宏在发布会上表示&#xff0c;目前百度是全球大厂中第一个做出对标ChatGPT产品的企业。 有网友让文心一言作画&…

【2023,学点儿新Java-15】案例分享:基于Java实现餐厅点餐系统(附完整源代码)

前情回顾&#xff1a; 【2023&#xff0c;学点儿新Java-14】携程面试题&#xff1a;如何看待Java是一门半编译半解释型的语言&#xff1f;| 咨询互联网行业 资深前辈的一些问题 | 附&#xff1a;为什么说ChatGPT的核心算法是…&#xff1f;| GPT-3.5【2023&#xff0c;学点儿新…

文心一言作画:有点东西但不多...

随着ChatGPT的持续火热 与AI领域有关的话题 是越来越热闹了 前几天百度发布 “文心一言” 自然也成了网友们 重点关注的对象 不过大家的目光主要还是集中在 文心一言的绘画功能上 在人工智能加成下出来的画面 一个比一个绝 成功颠覆 大家对绘画的认知 生意火爆的商铺…

网传文心一言的魔性作图,有点被吓到...

来源&#xff1a;菜鸟教程 近日看到网友们用百度文心一言来作图&#xff0c;看了后我都愣住了。。。 1、AI 作画 -- 车水马龙 2、AI 作画 -- 驴肉火烧 3、AI 作画 -- 唐伯虎点秋香 4、AI 作画 -- 鱼香肉丝 5、AI 作画 -- 胸有成竹 6、AI 作画 -- 夫妻肺片 7、AI 作画 -- 红烧狮…

文心一言的魔性作图,我愣住了。。。

点关注公众号&#xff0c;回复“1024”获取2TB学习资源&#xff01; 最近&#xff0c;百度推出自己的AI大模型“文心一言”&#xff0c;李彦宏在发布会上表示&#xff0c;目前百度是全球大厂中第一个做出对标 ChatGPT 产品的企业。 但是&#xff0c;今天看到网友们用它来作图&a…

那些在学习GPT的过程中学到的

1、大模型是什么 GPT横空出世之后&#xff0c;大模型火了&#xff0c;什么是大模型呐&#xff1f; 大模型通常指的是具有大规模参数和复杂结构的深度学习模型。它们的设计和结构可以因任务而异&#xff0c;但以下是一些常见的大模型结构&#xff1a; Transformer&#xff1a…

LangChain 介绍及相关组件使用总结

一、langChain LangChain 是一个由语言模型LLMs驱动的应用程序框架&#xff0c;它允许用户围绕大型语言模型快速构建应用程序和管道。 可以直接与 OpenAI 的 ChatGPT 模型以及 Hugging Face 集成。通过 langChain 可快速构建聊天机器人、生成式问答(GQA)、本文摘要等应用场景。…

第一代AIGC硬件悄然爆发

文 | 智能相对论 作者 | 叶远风 看起来&#xff0c;这可能是一副正常的黑框眼镜&#xff0c;你戴上去彬彬有礼、斯斯文文&#xff1b; 实际上&#xff0c;它里边还装了一个“小伙伴”&#xff0c;你随时可以与它交流&#xff0c;谈天说地或者提出各种问题接受它的帮助&#x…

chatgpt赋能python:小黑框:Python程序员必备利器

小黑框&#xff1a;Python程序员必备利器 如果您是一名Python程序员&#xff0c;小黑框&#xff08;Terminal&#xff09;一定不陌生。小黑框是一种基于文本的用户界面&#xff0c;通常用于执行命令行任务&#xff0c;编写或调试代码等。Python程序员可以通过小黑框完成许多任…