示例#1
0
int maxConsSum2(const vector<int> &arr) {
    if (arr.empty())
        return 0;
    
    int sum = 0;
    for (int i = 0; i < arr.size(); ++i)
        sum += arr[i];
    int maxs = maxConsSum(arr);
    int mins = minConsSum(arr);
    
    return max(maxs, sum - mins);
}
示例#2
0
int maxRectSum(vector<vector<int> > &matrix) 
{
	int maxSum = 0;
	if (matrix.empty())
		return 0;
	for (int i = 0; i < matrix.size(); i ++)
	{
		vector<int> subMatrix(matrix[0].size(), 0);
		for (int j = i; j < matrix.size(); ++ j)
		{
			for (int k = 0; k < matrix[0].size(); ++ k)
			{
				subMatrix[k] += matrix[j][k];
			}
		}
		maxSum = max(maxSum, maxConsSum(subMatrix));
	}
	return maxSum;
}