买卖股票的最佳时机II

简介: 买卖股票的最佳时机II

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。


示例1
输入:prices = [7,1,5,3,6,4]

输出:7

解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。

    随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。

    总利润为 4 + 3 = 7 。


示例2
输入:prices = [1,2,3,4,5]

输出:4

解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。

    总利润为 4 。

示例3
输入:prices = [7,6,4,3,1]

输出:0

解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。


方法1:贪心算法 

class Solution {
    public int maxProfit(int[] prices) {
        if(prices==null||prices.length<2) return 0;
        int index=0,length=prices.length,sum=0;
        while(index<length){
            while(index<length-1&&prices[index]>=prices[index+1])
                index++;
            int min=prices[index];
            while(index<length-1&&prices[index]<=prices[index+1])
                index++;
            sum+=prices[index++]-min;
        }
        return sum;
    }
}
目录
相关文章
|
6月前
|
算法
《LeetCode》—— 买卖股票的最佳时机
《LeetCode》—— 买卖股票的最佳时机
|
算法
【动态规划刷题 7】 买卖股票的最佳时机含冷冻期&& 买卖股票的最佳时机含手续费
【动态规划刷题 7】 买卖股票的最佳时机含冷冻期&& 买卖股票的最佳时机含手续费
|
6月前
leetcode-714:买卖股票的最佳时机含手续费
leetcode-714:买卖股票的最佳时机含手续费
39 0
|
5月前
|
存储 算法 数据可视化
买卖股票的最佳时机 II(LeetCode 122)
买卖股票的最佳时机 II(LeetCode 122)
|
6月前
|
算法
leetcode121. 买卖股票的最佳时机
leetcode121. 买卖股票的最佳时机
35 0
|
6月前
|
算法 C++
买卖股票的最佳时机(C++)
买卖股票的最佳时机(C++)
51 0
|
6月前
|
算法
leetcode-123:买卖股票的最佳时机 III
leetcode-123:买卖股票的最佳时机 III
42 0
|
6月前
|
算法
leetcode-121:买卖股票的最佳时机
leetcode-121:买卖股票的最佳时机
45 0
|
算法
leetcode 714 买卖股票的最佳时机含手续费
leetcode 714 买卖股票的最佳时机含手续费
90 0
leetcode 714 买卖股票的最佳时机含手续费