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

题目链接:监控二叉树

对题目的理解

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

相关推荐
sycmancia6 小时前
Qt——多线程与界面组件的通信
开发语言·qt·算法
想吃火锅10057 小时前
【leetcode】5.最长回文子串js
算法·leetcode·职场和发展
盐焗鹌鹑蛋7 小时前
【C++】C++11:右值引用、移动语义万能引用
c++
LingzhiPi7 小时前
零知ESP32--RC522NFC考勤打卡系统
c++·单片机·嵌入式硬件
CoderYanger7 小时前
A.每日一题:1967题+1331题
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
Jasmine_llq7 小时前
《P17010 [GESP202606 五级] 排排坐》
算法·贪心算法·数学化简求和式·排序sort 反向迭代器降序·线性遍历累加计算总权重和
va学弟7 小时前
LeetCode 热题 100 题解(1):哈希
python·算法·leetcode·哈希算法
程序员老陆8 小时前
使用Qt+大华设备SDK预览大华摄像机视频
qt·算法·音视频·视频监控
罗超驿8 小时前
9.优先级队列与堆:从底层原理到实战应用的完整指南
数据结构·算法
小灰灰搞电子8 小时前
C++ boost::range 详解:基于最新版本的现代范围处理指南
开发语言·c++