您现在的位置是:首页 >其他 >代码随想录算法训练营第三十七天 | 两道难题,很有意义网站首页其他
代码随想录算法训练营第三十七天 | 两道难题,很有意义
简介代码随想录算法训练营第三十七天 | 两道难题,很有意义
738.单调递增的数字
文档讲解:代码随想录 (programmercarl.com)
视频讲解:贪心算法,思路不难想,但代码不好写!LeetCode:738.单调自增的数字_哔哩哔哩_bilibili
状态:不会做。
我的思路(感觉文档思路不好用)
对于数字(eg. 12534),若某一位开始后面的不递增(eg. 534),说明该位前面的数字递增(eg. 12),那么,将当前位减一(5-1=4),后面的位都改为9即可。所以12534对应的结果为12499。
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string strNum = to_string(n); //数字转为string
int flag = strNum.size(); //记录【减一位置】的后一位
for(int i = strNum.size() - 1; i > 0; i--){ //从后向前遍历
if(strNum[i - 1] > strNum[i]){ //i-1为【减一位置】
flag = i;
strNum[i - 1]--;
}
}
for(int i = flag; i < strNum.size(); i++){ //把【减一位置】后面的位置都改为9
strNum[i] = '9';
}
return stoi(strNum);
}
};
968.监控二叉树
文档讲解:代码随想录 (programmercarl.com)
视频讲解:贪心算法,二叉树与贪心的结合,有点难… LeetCode:968.监督二叉树_哔哩哔哩_bilibili
状态:太难了,要对二叉树有很深的理解。建议看视频。
思路
先看视频再看文档。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。