#include<iostream>
#include<string>
using namespace std;
int MaxValue(int *v,int m,int n) {
if (v == NULL || m <= 0 || n <= 0) return 0;
int**max = new int*[m];
for (int i = 0; i < m; i++)
max[i] = new int[n];
max[0][0] = v[0];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (i == 0 && j > 0) max[j][i] = max[j - 1][i] + v[j*n + i];
else if (i > 0) {
if (j > 0) max[j][i] = (max[j - 1][i] > max[j][i - 1] ? max[j - 1][i] : max[j][i - 1]) + v[j*n + i];
else max[j][i] = max[j][i - 1] + v[j*n + i];
}
}
}
return max[m-1][n-1];
}
int main() {
int a[] = {1,10,3,8,12,2,9,6,5,7,4,11,3,7,16,5};
cout << MaxValue(a,4,4) << endl;
return 0;
}
剑指offer47
最新推荐文章于 2022-10-31 19:32:23 发布