给定一个数组 prices计算其利润最大
前言:新手菜鸡的笔记
题目:
给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例:
示例 1:
输入: prices = [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2zsx1/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
代码:
/**** @param prices* @returns {number}*/
var maxProfit = function (prices) {let maxProfit = 0;for (let i = 0; i < prices.length; i++) {if ((prices[i + 1] - prices[i]) > 0) {maxProfit += (prices[i + 1] - prices[i])}}return maxProfit
}
- 思路:
利用下面数据作图:
要求算的是后面卖出的钱减去之前购买花的钱,那么可以考虑看作是二维坐标图中的每一段上升趋势的线
的y2 - y1
例如上面的图中需要计算的利润线有:
在代码中实现也是简单很多的
遍历每一个数,让其后面的一个数减去其,如果大于0,那么就计算到利润中去:
if ((prices[i + 1] - prices[i]) > 0) {maxProfit += (prices[i + 1] - prices[i])}
给定一个数组 prices计算其利润最大相关推荐
- 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的
买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该 ...
- 【IT笔试面试题整理】给定一个数组a[N]构造数组b [N]
[来源]:腾讯2013实习生笔试 给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]-a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂 ...
- leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置
给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置 leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置 示例: 输入: [0 ...
- 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)
题目:任意给定一个浮点数,计算这个浮点数的立方根.(基于二分法和牛顿迭代法)(基于Java实现) 首先,来分析一下这道题,其实在leetcode上做了求解根号3的题之后,对于这种求解立方根的题,基本上 ...
- 剑指offer:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,..,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]
给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]. 不能使用除 ...
- 给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。
给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序. import java.util.Arrays;public class MaximumDif ...
- Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
问题内容是:给定一个数组,给定一个数字.返回数组中可以相加得到指定数字的两个索引. 比如:给定nums = [2, 7, 11, 15], target = 9 那么要返回 [0, 1],因为2 + ...
- C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。
)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...
- 每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 2020年11月19日,力扣,简单,移动零 一.题目描述 给定一个数组 nums,编写一个函数 ...
最新文章
- mysql 函数rep_Mysql之各种各样的函数啦
- linux版本查看命令多少位,查看linux系统版本命令32位还是64位
- 通过NRM随意切换Taobao镜像和NPM官方镜像
- yii2.0 错误处理
- 中兴通讯推出全球首款Wi-Fi 7标准5G CPE
- C语言手写快排算法,两个值时也可以使用哦!
- 对象测试_心理测试:你会选择跟对象去吃什么夜宵?测你治愈失恋的方法是什么...
- zabbix 2.2节点批量安装
- matlab odeset慢,matcont6p1 最全最强大的非线性系统动态分岔与混沌分析软件,功能 ,可以满足绝大多数动力学要 matlab 276万源代码下载- www.pudn.com...
- 测试用例设计设计方法——正交实验法
- 工业和信息化部工业企业问卷调查系统
- 如果把ChatGPT和“挖呀挖”的黄老师结合起来,她可以为你做什么事情?
- oracle索引的一些实践
- php上传后门,PHP图片后门藏匿攻略
- 跨境电商财务管理难的原因总结以及该如何解决
- ST2Vec: Spatio-Temporal Trajectory Similarity Learning in Road Networks
- 【烙铁使用规范】——烙铁的使用
- UE4_UE5播放视频(附工程)
- Work20230513
- ISM解释结构模型法
热门文章
- 总算知道怎样从ImageMagick生成的数据转换成HICON: MagickGetImageBlob LookupIconIdFromDirectoryEx...
- 关于Mathematica 的cdf 文件的嵌入应用
- C#中double.tostring()的用法
- ubuntu linux 下 adb 连接andoid 设备
- 贪心算法——洛谷(P4995)跳跳!
- entity framework mysql guid,c# – 自动生成不是Entity Framework中主键的GUID列
- python 代码段的标志_Python代码类型标志
- 解读业界5种主流的深度网络模型
- Linux IPTables:如何添加防火墙规则
- 云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本