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科技星13 小时前
统一场论理论下理解物体在不同运动状态的本质
人工智能·线性代数·算法·机器学习·概率论
txinyu的博客13 小时前
sprintf & snprintf
linux·运维·算法
pas13613 小时前
34-mini-vue 更新element的children-双端对比diff算法
javascript·vue.js·算法
Qhumaing13 小时前
数据结构——例子求算法时间复杂度&&空间复杂度
数据结构·算法
Yu_Lijing13 小时前
基于C++的《Head First设计模式》笔记——状态模式
c++·笔记·设计模式
鱼跃鹰飞13 小时前
Leetcode1027:最长等差数列
java·数据结构·算法
翱翔的苍鹰13 小时前
CIFAR-10 是一个经典的小型彩色图像分类数据集,广泛用于深度学习入门、模型验证和算法研究
深度学习·算法·分类
顶点多余13 小时前
静态链接 vs 动态链接,静态库 vs 动态库
linux·c++·算法
AI视觉网奇13 小时前
ue5 开发 web socket server 实战2026
c++·学习·ue5
啊阿狸不会拉杆14 小时前
《机器学习》第六章-强化学习
人工智能·算法·机器学习·ai·机器人·强化学习·ml