1. 题目
来源:https://tianchi.aliyun.com/oj/164423301311799378/184808348725744275
2. 解题
class Solution {
public:
/**
* @param matrix: the matrix
* @return: the maximum score you can get
*/
int maximumScore(vector<vector<int>> &matrix) {
// write your code here
int m = matrix.size(), n = matrix[0].size();
vector<vector<int>> dp(m, vector<int>(n, 0));
dp[0] = matrix[0];
for(int i = 1; i < m; i++)
{
for(int j = 0; j < n; j++)
{ // 当前列位置
for(int k = 0; k < n; k++)
{ //上一行列的位置
dp[i][j] = max(dp[i][j], dp[i-1][k]-abs(k-j)+matrix[i][j]);
}
}
}
return *max_element(dp[m-1].begin(), dp[m-1].end());
}
};
101ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!