博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Best Time to Buy and Sell Stock
阅读量:4983 次
发布时间:2019-06-12

本文共 681 字,大约阅读时间需要 2 分钟。

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.

 

Invariant 在于,如果第i 天和第j 天分别是最高收益的买入点和卖出点,那么prices[i] 必然是[0, j] 区间内价格的最低点。

只用遍历一次,用当前找到的最低价格来计算收益,并更新收益最大值,同时更新价格最低点。遍历完成之后即得结果。

/** * @param {number[]} prices * @return {number} */var maxProfit = function(prices) {    var n = 0;    var lowest = prices[0];    prices.forEach(function(p) {        n = Math.max(n, p - lowest);        lowest = Math.min(lowest, p);    });    return n;};

 

转载于:https://www.cnblogs.com/agentgamer/p/5407680.html

你可能感兴趣的文章
3 - Selenium元素定位和操作
查看>>
GCC C语言 DLL范例,含源码
查看>>
冲刺第一天(补发)
查看>>
iOS开发Xcode中切换显示语言实现国际化
查看>>
C++模板学习
查看>>
nginx
查看>>
大数据平台搭建-hadoop集群的搭建
查看>>
安装一些包管理的记录 win10
查看>>
Android RecyclerView notifyDataSetChanged不起作用
查看>>
AndroidStudio3.0 Canary 8注解报错Annotation processors must be explicitly declared now.
查看>>
Android 一个改进的okHttp封装库
查看>>
genymotion下载出现Unable to create virtual device,Server returned HTTP status code 0.
查看>>
Android 下拉刷新框架实现
查看>>
ViewPager + Fragment实现滑动标签页
查看>>
Spring与Hibernate实现增删改查两方法
查看>>
Genymotion 插件在 Eclipse 和 Android Studio 中点击后无法初始化 Initialize Engine: failed 解决方法...
查看>>
1R安装环境
查看>>
初学Python——Socket网络编程
查看>>
Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)
查看>>
Gym - 101252H
查看>>