摘要:题解 Medium | Backtracking class Solution { public: int getMaximumGold(vector<vector<int>>& grid) { int ret = 0; for(int i = 0; i < grid.size(); i++) {
阅读全文
摘要:题解 Medium | Backtracking 经典的排列组合题,使用回溯法。必须熟练。 class Solution { public: vector<vector<int>> combine(int n, int k) { vector<vector<int>> combinations; v
阅读全文
摘要:题解 Medium 动态规划 class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { if(obstacleGrid.empty()) return 0; int m = o
阅读全文
摘要:题解 Easy. 动态规划。 class Solution { public: int uniquePaths(int m, int n) { vector<vector<int>> dp(m, vector<int>(n)); for(int i = 0; i < m; i++) dp[i][0]
阅读全文
摘要:题解 动态规划。 Easy class Solution { public: int numWays(int n, int k) { if(n == 0) return 0; if(n == 1) return k; int num = 0; // dp1[i]: the number of way
阅读全文
摘要:题解 动态规划,Hard级别。 Paint House 的升级版,如果颜色数量不是三种,而是若干种。直接套用256的思路,问题得解。 class Solution { public: int minCostII(vector<vector<int>>& costs) { if(costs.empty
阅读全文
摘要:题解 动态规划,Easy级别。 动态规划题,重点是找到传递公式,思路见注释。 class Solution { public: int minCost(vector<vector<int>>& costs) { if(costs.empty()) return 0; int n = costs.si
阅读全文
摘要:##题解 很简单。 class Solution { public: vector<int> plusOne(vector<int>& digits) { int carry = 1; for(int i = digits.size()-1; i >= 0; i--) { int temp = ca
阅读全文