摘要:
模仿十进制进位写二进制进位。 class Solution { public: string addBinary(string a, string b) { string res; reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); f 阅读全文
posted @ 2020-06-29 23:01
machine_gun_lin
阅读(106)
评论(0)
推荐(0)
摘要:
用一个数组记录各个位数的变化,通过低位+1,观察各个位数的变化。 注意一下如果最高位因为进位导致多了一位,需要将进位(只可能是1 push_back()进数组) class Solution { public: vector<int> plusOne(vector<int>& digits) { r 阅读全文
posted @ 2020-06-29 22:34
machine_gun_lin
阅读(148)
评论(0)
推荐(0)
摘要:
这题完美的诠释了什么叫“面向测试用例编程”。由于要考虑的情况很多,所以基本的思路是先根据给出的测试用例写出规则判断无效的情况,然后再根据提交的错误对剩下的情况进行特判,如果不满足所有“无效的情况”,则有效。题目特别提了“我们有意将问题陈述地比较模糊”,这个“有意地陈述地模糊”就很灵性,所以一开始很难 阅读全文
posted @ 2020-06-29 22:10
machine_gun_lin
阅读(189)
评论(0)
推荐(0)
摘要:
这题和62题以及63题类似,只不过dp数组的状态表示变了,这里dp数组不再表示方案数,而是到当前格子的最小路径和。可以发现:要到达第i行第j列的格子,只有从第i - 1行第j列的格子或第i行第j - 1列的格子加上到第i行第j列的格子需要的代价(grid[i][j])得到,所以如果要得到到第i行第j 阅读全文
posted @ 2020-06-29 11:20
machine_gun_lin
阅读(68)
评论(0)
推荐(0)
摘要:
这题和62题类似,只不过这里多了障碍物,只需要把有障碍物的格子的方案数设置为0即可,其他格子还是原来的走法。 class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int 阅读全文
posted @ 2020-06-29 10:43
machine_gun_lin
阅读(162)
评论(0)
推荐(0)
摘要:
由于机器人只可以向右和向下移动,所以我们要到第i行第j列,只可以由第i-1行第j列和第i行第j-1列移动一步得到,因此要到第i行第j列的方案数就是到第i-1行第j列的方案数和到第i行第j-1列的方案数之和。如果用dp[i][j]表示到第i行第j列的方案数,我们可以得到状态转移方程:dp[i][j] 阅读全文
posted @ 2020-06-29 10:28
machine_gun_lin
阅读(105)
评论(0)
推荐(0)