买卖股票的最佳时机 II
FJHHH Lv3

前言

这是“买卖股票的最佳时机 ”系列的第二题,但是。。

题目

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

样例

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

思路

这。。 把数组里prices[i]-prices[i-1]大于0的加起来就好了啊,还有其他更快的方法吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 2895 ms
class Solution {
/**
* @param prices: Given an integer array
* @return: Maximum profit
*/
public int maxProfit(int[] prices) {
int l = prices.length;
int sum = 0;
for (int i = 1; i < l; i++) {
int temp = prices[i] - prices[i - 1];
sum += temp>0?temp:0;
}
return sum;
}
};
 Comments