美文网首页
LeetCode 数组--买卖股票

LeetCode 数组--买卖股票

作者: 吃块西瓜写代码 | 来源:发表于2019-08-28 21:45 被阅读0次

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
这个问题的核心在于,做出一次买卖后,之前的都不要在管了,
因此,设计两个指针,一个指针指一次买卖中的最小值,一次指一个买卖中的最大值。
问题的核心就在于买卖如何分,实际上,买可以随时买,但卖一定是最高价卖。卖完这次交易就算结束了。/

class Solution {
    public int maxProfit(int[] prices) {
    
        if (prices.length<=1){
            return 0;
        }


        int min = 0;
        int max = 0;
        int p =0;
       while (max+1<prices.length){
           if (prices[min]>prices[max]){
               min = max;
               max = max + 1;
               continue;
           }
           if (prices[max]>prices[max+1]){
             
               p = p + prices[max]-prices[min];
               min = max+1;
               max = max+1;

               continue;
           }
           if (max+2==prices.length){
               p=p+prices[max+1]-prices[min];
           }
            max = max+1;
       }
        return p ;
    }
}

相关文章

网友评论

      本文标题:LeetCode 数组--买卖股票

      本文链接:https://www.haomeiwen.com/subject/wbdvectx.html