股票收益最大
来源:互联网 发布:ubuntu chrome 编辑:程序博客网 时间:2024/05/21 03:24
Best Time to Buy and Sell Stock
- 问题描述:leetcode:121
- 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.
思路:
- 这是一个动态规划问题,是一个局部与全局的问题。
- 考虑第i天出售股票的话能赚多少钱,记为local[i];其取值可以是:
int diff = prices[i] - prices[i-1]; local[i] = max(local[i-1]+diff, diff);
- 对于全局最大为maxans:
maxans = max(maxans, local[i]);
我自己的渣代码:
int maxProfit(vector<int>& prices) { int maxans = 0; vector<int> local(prices.size(), 0); if (prices.size()==1||prices.size()==0) return 0; for(int i=1; i<prices.size(); i++){ int diff = prices[i] - prices[i-1]; local[i] = max(local[i-1]+diff, diff); maxans = max(maxans, local[i]); } return maxans; }
leetcode优秀代码:
int maxProfit(vector<int> &prices) { int maxPro = 0; int minPrice = INT_MAX; for(int i = 0; i < prices.size(); i++){ minPrice = min(minPrice, prices[i]); maxPro = max(maxPro, prices[i] - minPrice); } return maxPro;}
minPrice is the minimum price from day 0 to day i. And maxPro is the maximum profit we can get from day 0 to day i.
How to get maxPro? Just get the larger one between current maxPro and prices[i] - minPrice.
0 0
- 股票,最大收益
- 股票收益最大
- 买卖股票收益最大问题
- 【数字题1】股票的最大收益
- 算法导论之求股票最大收益
- 小米笔试-股票最大收益(动态规划)
- java计算股票一段时间内最大收益
- 股票收益
- 股票最大收益问题及数组最大差值问题
- 最大股票收益问题(数组最大差问题)
- 如何买卖股票以获得最大收益 java算法
- 找出买卖股票的最大收益及其时间
- 网易游戏面试--两次股票买入卖出的最大收益
- 最多n次购买时股票最大收益问题
- JAVA股票问题计算你能获得的最大收益
- <每日一题>算法导论:最大股票收益
- 股票收益计算器
- 【重要】股票收益互换
- JVM内幕:Java虚拟机详解
- MFC实现下载网络图片缓存到本地
- android studio 中配置 svn
- ZOJ 3522 Hide and seek
- Sine之舞
- 股票收益最大
- ubuntu 安装NVIDIA 显卡后分辨率改变成640*480解决办法
- mysql的binary、char、varchar区别
- 实现图片的无缝滚动
- OpenGL es 2.0 实战 - 渲染图形变形
- java回调
- zoj3158切蛋糕
- HDU 5726 GCD 【GCD】【ST表+二分】【线段树+暴力枚举】
- 单应矩阵Homography求解