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

题目链接:监控二叉树

对题目的理解

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

相关推荐
liulilittle2 分钟前
rinetd 端口转发工具技术原理
linux·服务器·网络·c++·端口·通信·转发
ltqshs3 分钟前
嵌入式C语言-指针数组和数组指针
c语言·数据结构·算法
李日灐6 分钟前
C++STL:stack,queue,详解!!:OJ题练手使用和手撕底层代码
开发语言·c++
fy zs8 分钟前
应用层自定义协议和序列化
linux·网络·c++
小小宫城狮10 分钟前
BPE 算法原理与训练实现
算法·llm
胡萝卜不甜11 分钟前
算法宗门---广度有优先搜索BFS
算法·宽度优先
独自破碎E30 分钟前
【归并】数组中的逆序对
java·数据结构·算法
f***241134 分钟前
MATLAB高效算法优化实战指南
开发语言·算法·matlab
CSDN_RTKLIB37 分钟前
【std::vector】避免频繁扩容方法
c++·stl
Blossom.11842 分钟前
大模型自动化压缩:基于权重共享的超网神经架构搜索实战
运维·人工智能·python·算法·chatgpt·架构·自动化