LeetCode -- Best Time to Buy and Sell Stock II
题目描述:
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).
就是给出一些天的股票价格,算出最大利润。要求:在卖掉当前手中股票之前不能买下一次的股票。
由于题目的这个要求,本题的难度就降低了。只需要在一次遍历中,判断下一次的价格是否比当前手里的价格高,高了就卖,算出差值就是利润,累加这个差值就可以了。
实现代码:
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).
就是给出一些天的股票价格,算出最大利润。要求:在卖掉当前手中股票之前不能买下一次的股票。
由于题目的这个要求,本题的难度就降低了。只需要在一次遍历中,判断下一次的价格是否比当前手里的价格高,高了就卖,算出差值就是利润,累加这个差值就可以了。
实现代码:
public class Solution {
public int MaxProfit(int[] prices) {
if(prices == null || prices.Length == 0){
return 0;
}
var sum = 0;
for(var i = 0; i < prices.Length - 1; i ++){
sum += prices[i] < prices[i+1] ? prices[i+1]-prices[i] : 0;
}
return sum;
}
}