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

题目链接:监控二叉树

对题目的理解

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

相关推荐
飞舞哲几秒前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
有点。1 分钟前
C++(贪心算法二)
开发语言·c++·贪心算法
有点。7 分钟前
C++贪心算法一(练习题)
开发语言·c++·贪心算法
Coder-magician7 分钟前
《代码随想录》刷题打卡day12:二叉树part02
数据结构·c++·算法
海梨花21 分钟前
字节面试高频算法题
java·算法·面试·职场和发展
aqiu11111128 分钟前
python02
算法
瓦特what?28 分钟前
位运算核心技巧与应用
java·jvm·算法
无限码力28 分钟前
阿里算法岗 0530笔试真题 - 荆棘林的最优砍断计划
算法·阿里笔试真题·阿里机试真题·阿里算法岗笔试真题·阿里巴巴笔试真题
随意起个昵称31 分钟前
线性dp-LIS题目5(导弹拦截,二分优化)
c++·算法·动态规划
winlife_31 分钟前
全程用 AI 做一款商业级手游 · EP10 道具系统:让三个按钮真正改变棋盘
windows·算法·unity·ai编程·游戏开发·mcp·玩法系统