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

[豪の算法奇妙冒险] 代码随想录算法训练营第三十一天 | 56-合并区间、738-单调递增的数字

代码随想录算法训练营第三十一天 | 56-合并区间、738-单调递增的数字


LeetCode56 合并区间

题目链接:https://leetcode.cn/problems/merge-intervals/description/

文章讲解:https://programmercarl.com/0056.合并区间.html

视频讲解:https://www.bilibili.com/video/BV1wx4y157nD/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 重叠区间问题,先排序,让所有的相邻区间尽可能的重叠在一起

​ 按照左边界从小到大排序后,如果 intervals[i][0] <= intervals[i - 1][1] 即 intervals[i] 的左边界 <= intervals[i - 1] 的右边界,则一定有重叠

​ 用合并区间后左边界和右边界,作为一个新的区间加入到result数组即可

image-20260118202332288

class Solution {public int[][] merge(int[][] intervals) {if(intervals.length == 0 || intervals.length == 1){return intervals;}Arrays.sort(intervals, (a, b)->Integer.compare(a[0], b[0]));List<int[]> result = new ArrayList<>();int start = intervals[0][0];int maxRightEdge = intervals[0][1];for(int i = 1; i < intervals.length; i++){if(intervals[i][0] <= maxRightEdge){maxRightEdge = Math.max(maxRightEdge, intervals[i][1]);}else{result.add(new int[]{start, maxRightEdge});start = intervals[i][0];maxRightEdge = intervals[i][1];}}result.add(new int[]{start, maxRightEdge});return result.toArray(new int[result.size()][]);}
}

LeetCode738 单调递增的数字

题目链接:https://leetcode.cn/problems/monotone-increasing-digits/description/

文章讲解:https://programmercarl.com/0738.单调递增的数字.html

视频讲解:https://www.bilibili.com/video/BV1Kv4y1x7tP/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 注意设置tag标记从哪里开始往后赋值为9,初始值不落在数组中以防误伤

image-20260118205043759

class Solution {public int monotoneIncreasingDigits(int n) {String str = String.valueOf(n);char[] num = str.toCharArray();int tag = num.length;for(int i = num.length-1; i > 0; i--){if(num[i] < num[i-1]){num[i-1]--;tag = i;}}for(int i = tag; i < num.length; i++){num[i] = '9';}str = String.valueOf(num);return Integer.parseInt(str);}
}
http://www.jsqmd.com/news/263935/

相关文章:

  • MATLAB表格数据处理的项目落地经验(避坑+效率提升)
  • 最新论文 | EarthVL: 武大钟燕飞团队提出渐进式理解/生成框架, 从识别到深度理解遥感地物, 提供专业决策建议 - MKT
  • Flutter × OpenHarmony 跨端开发之汇率转换与汇率卡片展示
  • 《卷一》人形机器人导论:从机械设计到系统集成
  • (1-1)人形机器人的发展历史、趋势与应用场景:人形机器人的发展历程
  • 优雅汇率:Flutter × OpenHarmony 跨端汇率转换计算器实现
  • Flutter × OpenHarmony 汇率转换应用中的智能货币选择器实现
  • (1-2)人形机器人的发展历史、趋势与应用场景:未来趋势与行业需求
  • 提示工程质量保证体系:如何保证Prompt的一致性?
  • 综述北航基于视觉的无人机定位与导航方法研究 - MKT
  • AI原生应用持续学习框架对比:TensorFlow vs PyTorch
  • (1-3)人形机器人的发展历史、趋势与应用场景:人形机器人关键技术体系总览
  • 求小数点后某一位数字
  • 大数据领域中 RabbitMQ 的消息压缩技术
  • AD域控组策略------禁用所有本地账号,只启用Administrator账号并统一重置密码
  • 对于溢出数据的处理
  • 道路抛洒物检测数据集1650张VOC+YOLO格式
  • 5种空中飞行物数据集3936张VOC+YOLO格式
  • Python学习4
  • 顺序表(泛型)
  • 后劲大到离谱 董子健导演首作看完缓了两天!
  • 穷举法
  • 求最大公约数
  • 使用VS2022 Performance Profiler进行CPU分析
  • swift高阶函数
  • 【NWFSP问题】基于鳄鱼伏击算法CAOA求解零等待流水车间调度问题NWFSP附Matlab代码
  • 谢幕
  • 【】
  • 手动部署kiro到服务器上
  • 亲测好用!专科生毕业论文必备TOP9一键生成论文工具