class Solution {
public:
int maxValue(vector<vector<int>>& grid) {
int n=grid[0].size();
vector<int> dp(n,0);
for(auto& row:grid){
dp[0]+=row[0];
for (int i = 1; i < n; i++) {
// 滚动数组
dp[i]=max(dp[i-1],dp[i])+row[i];
}
}
return dp[n-1];
}
};