LeetCode 122. Best Time to Buy and Sell Stock II[Easy].md
题目
You are given an array prices
where prices[i]
is the price of a given stock on the ith
day.
Find the maximum profit you can achieve. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times).
Note: You may not engage in multiple transactions simultaneously (i.e., you must sell the stock before you buy again).
Example 1:
1 | Input: prices = [7,1,5,3,6,4] |
Example 2:
1 | Input: prices = [1,2,3,4,5] |
Example 3:
1 | Input: prices = [7,6,4,3,1] |
Constraints:
1 <= prices.length <= 3 * 104
0 <= prices[i] <= 104
题解
解答1[Java]
1 | public class Problem122Solution1 { |
思路
假设股价是连续上涨的,比如 [1, 2, 3, 4, 5],那么我们第一天买,然后第 5 天卖,其实等价于,第 1 天买,第 2 天卖,第 2 天再买, 第 3 天再卖。只要后一天比前一天价格高,我们就做操作。反之,如果后一天比前一天估计低,我们就不操作。
这种思路其实就是贪心算法的思路。