leetcode-122. Best Time to Buy and Sell Stock II

原创 2016年08月30日 22:59:17

Say you have an array for which the ith element is the price of a given stock on day i.

Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

题意解析:

题目就是告诉你有一个数组,index代表了日期,prices代表了价格,如{1,2,4,5,1},我们可以在1日买入,5日卖出,赚取4元,或者1日买入2日卖出,2日买入3日卖出,3日买入,4日卖出,赚取的同样是4元。不过,1日买入,2日买入这样的行为是不被允许的。

这题其实很简单,看了我上面的题意解析其实就不难发现,两种情况结果竟然是一样的,其实我们没有必要跨日期比较,我们只需要两天两天比较就行了,只要日期是增序的,那么肯定就是赚钱的。当天买第二天卖就行。最后总和就是总收益,代码如下:

public class Solution {
    public int maxProfit(int[] prices) {
        int result = 0;
        for(int i = 1; i < prices.length; i++){
            if(prices[i] > prices[i - 1]){
                result += prices[i] - prices[i - 1];
            }
        }
        return result;
    }
}
复杂度O(n),简单,快速。应该就是最优算法了。

大家速度也差不多,看来这道题应该只是easy的

【LeetCode-面试算法经典-Java实现】【121-Best Time to Buy and Sell Stock(最佳买卖股票的时间)】

【121-Best Time to Buy and Sell Stock(最佳买卖股票的时间)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Say you have a...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月14日 06:16
  • 6304

Best Time to Buy and Sell Stock II 最佳时间买入卖出股票(多次买卖)@LeetCode

package Level3; /** * Best Time to Buy and Sell Stock II * * Say you have an array for which t...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月07日 12:34
  • 9757

Best Time to Buy and Sell Stock III 两次买卖股票的最佳时机 (重重重)

题目: 只能买卖两次,er
  • skyoceanlover
  • skyoceanlover
  • 2014年08月21日 16:51
  • 778

动态规划的经典问题初探: Best Time to Buy and Sell Stock(DP)

1.DescriptionSay you have an array for which the ith element is the price of a given stock on day i....
  • w_bu_neng_ku
  • w_bu_neng_ku
  • 2017年10月26日 01:33
  • 49

Best Time to Buy and Sell Stock 最佳时间买入卖出股票(一次买入卖出) @LeetCode

package Level2; /** * Best Time to Buy and Sell Stock * * Say you have an array for which the ...
  • hellobinfeng
  • hellobinfeng
  • 2013年10月19日 00:29
  • 1973

Best Time to Buy and Sell Stock III(最多出手两次的多大获利)

出现的bugs: (1)由两个if的来计算序列的值,讨论了>和 (2)引用初始化。在两个函数里的两个参数引用初始化了同一个vector,结果是第二个引用参数由于iterator的更改而全部失效,也...
  • ylzintsinghua
  • ylzintsinghua
  • 2014年12月13日 16:14
  • 298

Best Time to Buy and Sell Stock III 最佳时间买入卖出股票(最多两次买卖)@LeetCode

直到要用DP做,但是一开始思路是错的。后来参考了 http://blog.csdn.net/pickless/article/details/12034365 才意识到可以在整个区间的每一点切开,然后...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月08日 00:34
  • 20455

【Leetcode】Stock Buy and Sell 系列问题 终极分析!

股票系列一共五个变种,这里先分析其中的三个。 第一个:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/?tab=Descri...
  • u010900754
  • u010900754
  • 2017年02月20日 04:27
  • 239

linux 常用sell 语句

文件读取 cat 文件名|while read line echo $line done 取算术运算结果 echo $[4+5] 输出为9 if语句 一般格式为 if[ va...
  • lixin_4055
  • lixin_4055
  • 2013年08月13日 12:45
  • 1001

基于OPL结合cutstock案例梳理Column Generation 算法

列生成算法的核心思想非常朴素,借鉴单纯形法迭代中的“进基”思想,实际的原始问题可能很多列向量,但是真正“入基”的列向量却只占很少的一部分,因此如果能人工干预挑选出那些“质量比较好”的列向量进行求解,将...
  • polarbear_gh
  • polarbear_gh
  • 2014年11月24日 16:49
  • 2906
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode-122. Best Time to Buy and Sell Stock II
举报原因:
原因补充:

(最多只允许输入30个字)