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 监控二叉树

题目链接:监控二叉树

对题目的理解

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

相关推荐
AI专业测评1 分钟前
2026年AI写作软件底层技术全景解析:长篇AI写网文的工程化实践与AI消痕算法基准测试
人工智能·算法·ai写作
biter down3 分钟前
C++ 设计不可被继承的类
java·开发语言·c++
Once_day4 分钟前
C++之《程序员自我修养》读书总结(12)
c++·编译与链接
浅念-6 分钟前
C++ 异常
开发语言·数据结构·数据库·c++·经验分享·笔记·学习
2401_884563247 分钟前
高性能日志库C++实现
开发语言·c++·算法
葳_人生_蕤7 分钟前
hot100——226.翻转二叉树
算法
czxyvX11 分钟前
C++ - 基于多设计模式下的同步&异步日志系统
c++·设计模式
handler0112 分钟前
基础算法:BFS
开发语言·数据结构·c++·学习·算法·宽度优先
2401_8795034113 分钟前
C++中的状态模式实战
开发语言·c++·算法
不当菜鸡的程序媛13 分钟前
神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
人工智能·神经网络·算法