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

代码随想录Day31:56.合并区间、738.单调递增的数字

56. 合并区间

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

题目链接:LeetCode56.合并区间
文档讲解:代码随想录LeetCode56.合并区间

题解

按照区间的左边界进行排序,从左往右遍历区间,把第一个元素存入结果,有重叠则把后一个区间的右边界更新为该区间右边界和前一区间右边界的最大值,无重叠则把有一个区间放入结果。

class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b) {if (a[0] == b[0])return a[1] < b[1];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;}
};
  • 时间复杂度:O(nlogn)
  • 空间复杂度:O(logn)

738. 单调递增的数字

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

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

题目链接:LeetCode738.单调递增的数字
文档讲解:代码随想录LeetCode738.单调递增的数字

题解

局部最优:遇到strNum[i-1]>strNum[i]的情况让strNum[i-1]–,strNum[i]=9,并且记录此时 i 的值,将 i 及其之后的数字都设置为9;
全局最优:得到小于等于n的单调递增数

class Solution {
public:int monotoneIncreasingDigits(int n) {string strNum = to_string(n);int flag = strNum.size();for (int i = strNum.size() - 1; i > 0; i--) {if (strNum[i - 1] > strNum[i]) {flag = i;strNum[i - 1]--;}}for (int i = flag; i < strNum.size(); i++) {strNum[i] = '9';}return stoi(strNum);}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python实现生命游戏
  • ubuntu安装nginx
  • chatgpt和语言学
  • 【鸿蒙基础系列】鸿蒙基础组件
  • C# 中的抽象类和抽象方法
  • RK3576 芯片介绍
  • Android笔试面试题AI答之Kotlin(9)
  • Cookie 和本地存储,浏览器缓存
  • 三级_网络技术_18_路由器的配置及使用
  • HCIP-HarmonyOS Application Developer 习题(三)
  • Linux中ES的安装
  • 【信创】双系统下删除Windows只保留麒麟系统
  • Amazon VPC基础指南
  • Docker——常用命令
  • c语言第18天笔记
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Angular 响应式表单之下拉框
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Hibernate【inverse和cascade属性】知识要点
  • java中具有继承关系的类及其对象初始化顺序
  • Joomla 2.x, 3.x useful code cheatsheet
  • leetcode98. Validate Binary Search Tree
  • React-Native - 收藏集 - 掘金
  • redis学习笔记(三):列表、集合、有序集合
  • Redis字符串类型内部编码剖析
  • spring boot 整合mybatis 无法输出sql的问题
  • vue-router 实现分析
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 分享几个不错的工具
  • 前端知识点整理(待续)
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 微信支付JSAPI,实测!终极方案
  • 学习使用ExpressJS 4.0中的新Router
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在Unity中实现一个简单的消息管理器
  • 找一份好的前端工作,起点很重要
  • 《天龙八部3D》Unity技术方案揭秘
  • Python 之网络式编程
  • ​数据链路层——流量控制可靠传输机制 ​
  • #window11设置系统变量#
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (16)Reactor的测试——响应式Spring的道法术器
  • (175)FPGA门控时钟技术
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (备忘)Java Map 遍历
  • (独孤九剑)--文件系统
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (离散数学)逻辑连接词
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (学习日记)2024.01.09
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)