前言:新手菜鸡的笔记

题目:

给定一个数组 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计算其利润最大相关推荐

  1. 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的

    买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该 ...

  2. 【IT笔试面试题整理】给定一个数组a[N]构造数组b [N]

    [来源]:腾讯2013实习生笔试   给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]-a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂 ...

  3. leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置

    给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置 leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置 示例: 输入: [0 ...

  4. 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)

    题目:任意给定一个浮点数,计算这个浮点数的立方根.(基于二分法和牛顿迭代法)(基于Java实现) 首先,来分析一下这道题,其实在leetcode上做了求解根号3的题之后,对于这种求解立方根的题,基本上 ...

  5. 剑指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]. 不能使用除 ...

  6. 给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。

    给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序. import java.util.Arrays;public class MaximumDif ...

  7. Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引

    问题内容是:给定一个数组,给定一个数字.返回数组中可以相加得到指定数字的两个索引. 比如:给定nums = [2, 7, 11, 15], target = 9 那么要返回 [0, 1],因为2 + ...

  8. C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。

    )输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...

  9. 每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 2020年11月19日,力扣,简单,移动零 一.题目描述 给定一个数组 nums,编写一个函数 ...

最新文章

  1. mysql 函数rep_Mysql之各种各样的函数啦
  2. linux版本查看命令多少位,查看linux系统版本命令32位还是64位
  3. 通过NRM随意切换Taobao镜像和NPM官方镜像
  4. yii2.0 错误处理
  5. 中兴通讯推出全球首款Wi-Fi 7标准5G CPE
  6. C语言手写快排算法,两个值时也可以使用哦!
  7. 对象测试_心理测试:你会选择跟对象去吃什么夜宵?测你治愈失恋的方法是什么...
  8. zabbix 2.2节点批量安装
  9. matlab odeset慢,matcont6p1 最全最强大的非线性系统动态分岔与混沌分析软件,功能 ,可以满足绝大多数动力学要 matlab 276万源代码下载- www.pudn.com...
  10. 测试用例设计设计方法——正交实验法
  11. 工业和信息化部工业企业问卷调查系统
  12. 如果把ChatGPT和“挖呀挖”的黄老师结合起来,她可以为你做什么事情?
  13. oracle索引的一些实践
  14. php上传后门,PHP图片后门藏匿攻略
  15. 跨境电商财务管理难的原因总结以及该如何解决
  16. ST2Vec: Spatio-Temporal Trajectory Similarity Learning in Road Networks
  17. 【烙铁使用规范】——烙铁的使用
  18. UE4_UE5播放视频(附工程)
  19. Work20230513
  20. ISM解释结构模型法

热门文章

  1. 总算知道怎样从ImageMagick生成的数据转换成HICON: MagickGetImageBlob LookupIconIdFromDirectoryEx...
  2. 关于Mathematica 的cdf 文件的嵌入应用
  3. C#中double.tostring()的用法
  4. ubuntu linux 下 adb 连接andoid 设备
  5. 贪心算法——洛谷(P4995)跳跳!
  6. entity framework mysql guid,c# – 自动生成不是Entity Framework中主键的GUID列
  7. python 代码段的标志_Python代码类型标志
  8. 解读业界5种主流的深度网络模型
  9. Linux IPTables:如何添加防火墙规则
  10. 云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本