Day 37 貪心算法
738. 單調(diào)遞增的數(shù)字
兩個(gè)可能經(jīng)常要用到的函數(shù)
字符串轉(zhuǎn)數(shù)字:to_string()
數(shù)字轉(zhuǎn)字符串:stoi()
文章來源:http://www.zghlxwxcb.cn/news/detail-644373.html
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string num = to_string(n);
int len = num.size();
int flag = len;
for (int i = len - 1; i >= 1; i--)
{
if (num[i - 1] > num[i])
{
flag = i;
num[i - 1]--;
}
}
for (int i = flag; i < num.size(); i++)
{
num[i] = '9';
}
return stoi(num);
}
};
968. 監(jiān)控二叉樹
利用樹后續(xù)遍歷,同時(shí)加上狀態(tài)轉(zhuǎn)移的方法,非常值得反復(fù)學(xué)習(xí)文章來源地址http://www.zghlxwxcb.cn/news/detail-644373.html
class Solution {
int rst;
// 0: 無覆蓋, 1: 有攝像頭, 2: 有覆蓋
int tracking(TreeNode *root)
{
if (!root) return 2;
int leftStatus = tracking(root->left);
int rightStatus = tracking(root->right);
if (leftStatus == 2 && rightStatus == 2) return 0;
if (leftStatus == 0 || rightStatus == 0)
{
rst++;
return 1;
}
else return 2;
}
public:
int minCameraCover(TreeNode* root) {
rst = 0;
if (tracking(root) == 0) // 注意要接收這個(gè)返回值, 并作判斷, 必要時(shí)rst++
{
rst++;
}
return rst;
}
};
到了這里,關(guān)于算法刷題Day 37 單調(diào)遞增的數(shù)字+監(jiān)聽二叉樹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!