思路:毕竟是用了贪心算法,想到的话就很简单,但是想不到的话就会出很多问题。一开始是打算用一个循环,一次一次的合并,并考虑是否有新的数合并,如果有新的数合并,就再进行一次循环。但是会发现问题,有时候挨着合并并不会是最大的结果,所以就开始寻找规律。
可以看到第二个例子当中,主要是从后往前看可以很明显的看到,从后向前处理的感觉,然后把这种感觉应用到第一个例子当中,发现也是可以的,那么歧视就是很简单的一个从后向前遍历的逻辑。
class Solution {
public:
long long maxArrayValue(vector<int>& nums) {
long long sum = nums.back();
for (int i = nums.size() - 2; i >= 0; i--) {
sum = nums[i] <= sum ? nums[i] + sum : nums[i];
}
return sum;
}
};