简单的不能再简单的dp了
但有时很经典啊。。。作为面向大众普通同学的题库来说,也是要会的啊。。。
要是非要再白痴的做法难不成是把所有方案遍历一遍?
真的没有更简单的dp了QAQ 让我写简单做法真的找不到了QAQ 所有方案遍历一遍更麻烦啊 QAQ
因为是简单题,所以不想在空间 时间复杂度上做文章
class Solution { public: /** * * @param presentVolumn int整型vector<vector<>> N*M的矩阵,每个元素是这个地板砖上的礼物体积 * @return int整型 */ int min (int a, int b, int c) { if (a < b) return a < c ? a: c; else return b < c ? b: c; } int selectPresent(vector<vector<int> >& presentVolumn) { // write code here int n = presentVolumn.size(); if (n==0) return 0; int m = presentVolumn[0].size(); if (m==0) return 0; for (int j = 1; j < m; j ++) presentVolumn[0][j] += presentVolumn[0][j-1]; for (int i = 1; i < n; i ++) { presentVolumn[i][0] += presentVolumn[i-1][0]; for (int j = 1; j < m; j ++) { presentVolumn[i][j] += min(presentVolumn[i-1][j], presentVolumn[i-1][j-1], presentVolumn[i][j-1]); } } return presentVolumn[n-1][m-1]; } };