采用贪心算法,对于一个数组,要得到子数组的最大和,应该将所有可能的子数组的和求出来,然后比较:对于所有的子数组,他们之间应该没有重合的元素,因为一旦有重合的元素,就可以将两个子数组合并,得到一个更大的子数组,而子数组之间的界限就应该是子数组的累加和,当累加和小于0,就应该到了下一个子数组。因为这个性质,就可以使用贪心算法来求解。我们可以用一个元素来记录子数组的最大值,这样只需要遍历一次,便可以求出最终的解。 class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { ...