欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 27. 738.单调递增的数字,968.监控二叉树,贪心算法总结

27. 738.单调递增的数字,968.监控二叉树,贪心算法总结

2024/10/23 16:52:20 来源:https://blog.csdn.net/weixin_51952055/article/details/140252278  浏览:    关键词:27. 738.单调递增的数字,968.监控二叉树,贪心算法总结

class Solution {
public:int monotoneIncreasingDigits(int n) {string strNum = to_string(n);// flag用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行int flag = strNum.size();for(int i = strNum.size() - 1; i >= 1; i--){if(strNum[i] < strNum[i - 1]){strNum[i - 1]--;flag = i;}}for(int i = flag; i < strNum.size(); i++) strNum[i] = '9';return stoi(strNum);}
};

 

//定义: 0:该节点无覆盖 1:本节点有摄像头 2:本节点有覆盖!!!
class Solution {
public:int minCameraCover(TreeNode* root) {int cnt = 0;if(traversal(root, cnt) == 0) cnt++; //注意还需要判断根节点是否有覆盖!!!return cnt;}int traversal(TreeNode* root, int& cnt){if(root == nullptr) return 2;int left = traversal(root->left, cnt);int right = traversal(root->right, cnt);if(left == 0 || right == 0) {cnt++; return 1;}else if(left == 1 || right == 1) return 2;else return 0;// 以下是错误的逻辑!!!// if(left == 1 || right == 1) return 2;// else if(left ==2 && right ==2) return 0;// else {cnt++; return 1;}}
};

 贪心算法总结

代码随想录 (programmercarl.com)

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com