当前位置: 首页 > news >正文

代码随想录算法训练营第二十七天 |56. 合并区间 738.单调递增的数字 968.监控二叉树 (可跳过)

56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
class Solution {
public:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0] < b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> res;        if(intervals.size() ==0) return res;sort(intervals.begin(),intervals.end(),cmp);res.push_back(intervals[0]);for(int i = 1; i < intervals.size(); i++){if(res.back()[1] >= intervals[i][0]){res.back()[1] = max(res.back()[1],intervals[i][1]);}else{res.push_back(intervals[i]);}}return res;}
};

738. 单调递增的数字

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。

给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。

示例 1:

输入: n = 10
输出: 9

示例 2:

输入: n = 1234
输出: 1234
class Solution {
public:int monotoneIncreasingDigits(int n) {string nums =to_string(n);int idx = nums.size();for(int i = nums.size() - 1 ; i > 0 ; i--){if(nums[i - 1] > nums[i]){nums[i-1]--;//为什么需要使用--而不是nums[i-1] = nums[i] -1;idx = i;}}for(int i = idx  ; i < nums.size(); i++){nums[i] = '9';}return stoi(nums);}
};

968. 监控二叉树

给定一个二叉树,我们在树的节点上安装摄像头。

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。

计算监控树的所有节点所需的最小摄像头数量。

示例 1:

输入:[0,0,null,0,0]
输出:1
解释:如图所示,一台摄像头足以监控所有节点。
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
private:int res;int traveltree(TreeNode* cur){if(cur == NULL) return 2;int left = traveltree(cur->left);int right = traveltree(cur->right);if(left == 2 && right == 2) return 0;if(left == 0 || right == 0){res++;            return 1;}if(left == 1 || right == 1){return 2;}return -1;}public:int minCameraCover(TreeNode* root) {res = 0;if(traveltree(root) == 0) res++;return res;}
};

http://www.lryc.cn/news/394376.html

相关文章:

  • 网络基础:IS-IS协议
  • Java面试八股之如何提高MySQL的insert性能
  • 【密码学】什么是密码?什么是密码学?
  • k8s record 20240703
  • Ansible常用模块
  • 【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测
  • 深度学习:C++和Python如何对大图进行小目标检测
  • Eureka从入门到精通面试题及答案参考
  • io流 多线程
  • 人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系
  • 对话大模型Prompt是否需要礼貌点?
  • 【驱动篇】龙芯LS2K0300之ADC驱动
  • Python入门 2024/7/3
  • Go 语言 Map(集合)
  • SpringCloud学习Day7:Seata
  • 【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动
  • LabVIEW从测试曲线中提取特征值
  • 【应届应知应会】SQL常用知识点50道
  • 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】
  • 科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用
  • urfread刷算法|构建一棵树
  • 在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野
  • 【学习笔记】Mybatis-Plus(四):MP中内置的插件
  • GlusterFS分布式存储系统
  • 微信公众平台测试账号本地微信功能测试说明
  • Lua语言入门
  • 卷积神经网络有哪些应用场景
  • std::unordered_map和std::map在性能上有何不同
  • C++20中的基于范围的for循环(range-based for loop)
  • PCIe驱动开发(2)— 第一个简单驱动编写和测试