zoukankan      html  css  js  c++  java
  • 150. 买卖股票的最佳时机 II

    假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。

    给出一个数组样例[2,1,2,0,1], 返回 2

    本来的想法是卡住一位,找之后最大的一个然后相减。

    后来看了别人的解法之后发现没必要,在一天内可以同时买入卖出,比如说[1,2,3,4,5,6]这种情况,可以6-1=5,也可以2-1+3-2+...+6-5=5,结果是一样的,没必要搞得很复杂。

    1 int maxProfit(vector<int> &prices) {
    2     // write your code here
    3     int profit = 0;
    4     for (int i = 1; i < prices.size(); ++i) {
    5         if (prices[i] > prices[i - 1])
    6             profit += prices[i] - prices[i - 1];
    7     }
    8     return profit;
    9 }
  • 相关阅读:
    阿凯
    hlg神秘植物--矩阵快速幂
    poj1185炮兵阵地--状态dp
    该怎么办
    hlg2096---状态压缩dp
    这个世界

    第三篇
    LCT板子
    spoj COT
  • 原文地址:https://www.cnblogs.com/TheLaughingMan/p/8063367.html
Copyright © 2011-2022 走看看