C++ day37 贪心算法 单调递增的数字 监控二叉树

题目1:738 单调递增的数字

题目链接:单调递增的数字

对题目的理解

返回小于或等于n的最大数字,且数字是单调递增(单调递增数字的定义:每个相邻位上的数字满足x<=y

贪心算法

注意本题的遍历顺序是从后往前遍历

伪代码

代码

cpp 复制代码
class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        //将数字转换为字符串
        string str = to_string(n);
        int flag = str.size();
        //从后往前遍历
        for(int i=str.size()-1;i>0;i--){
            if(str[i]<str[i-1]){
                str[i-1]--;
                flag = i;//从i往后,都是9
            }
        }
        for(int j = flag;j<str.size();j++){
            str[j] = '9';
        }
        return stoi(str);

    }
};
  • 时间复杂度:O(n),n 为数字长度
  • 空间复杂度:O(n),需要一个字符串,转化为字符串操作更方便

题目2:968 监控二叉树

题目链接:监控二叉树

对题目的理解

节点上安装摄像头,每个摄像头都可以监控其父对象,自身及其直接子对象,求所有节点所需最小摄像头的数量。

相关推荐
aq55356002 分钟前
开源吐槽大会:让技术痛点变笑点
c++·mfc
田梓燊4 分钟前
力扣:138.随机链表的复制
算法·leetcode·链表
不忘不弃10 分钟前
皇后摆放问题优化求解法
算法
t***54410 分钟前
如何在 Dev-C++ 中切换编译器至 Clang
开发语言·c++
王老师青少年编程16 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【区间贪心】:线段覆盖
c++·算法·贪心·csp·信奥赛·区间贪心·线段覆盖
痴男本疒16 分钟前
从一道算法题发现的泛型问题
算法
itzixiao16 分钟前
L1-054 福到了(15 分)[java][python]
java·python·算法
CoderCodingNo22 分钟前
【信奥业余科普】C++ 的奇妙之旅 | 14:程序的分叉路口——逻辑判断与 if-else 语句
开发语言·c++
M--Y25 分钟前
Redis集群和典型应用场景
redis·算法·哈希算法·集群
The Chosen One98531 分钟前
a进制转b进制的转换总结
开发语言·c++