Leetcode - 122. 买卖股票的最佳时机 II
解题思路参考代码中的注释:
class Solution {
// 题目其实就是要我们判断数组中总共有多少个上升沿、这些上升沿总共上升的高度是多少
// 比如[7,1,5,3,4,6]中,上升沿是1->5和3->6,两者总共上升的高度是7,因此最大收益是7
// 解题思路:将数组分成若干个长度为1的小区间,然后取出其中的上升区间,并将其上升的高度累加起来
public int maxProfit(int[] prices) {
int length = prices.length, sum = 0;
for (int i = 1; i < length; i++) {
// 判断该小区间是否是上升区间
int profix = prices[i] - prices[i - 1];
// 如果是上升区间,则将上升高度累计起来
if (profix > 0) {
sum += profix;
}
}
return sum;
}
}
查看2道真题和解析