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

代码随想录训练营第三十一天|LeetCode56.合并区间、LeetCode738.单调递增的数字

56.合并区间

思路:先让二维数组进行排序;

遍历数组,定义一个min表示重合区间的左边界,max表示重合区间的右边界;

如果当前区间左边大于max,就证明重合区间断了,就要对它进行加入ArrayList;然后更新min和max就是当前数组的左边界和右边界。

反正,就证明是重合区间。更新max。

这里中了一个小坑:让当前区间的左边和上一个区间的右边作比较,来判断是不是重合区间。显然[1,6],[2,4],这种[2,4]被包含在重合区间里面,就只能用重合区间的右边界。

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

738.单调递增的数字

暴力法会超时!

可以借助字符串。

因为找一个数字的最大递增数字,就是让迭代让前一个数字-1并且后一个数字变成9,就可以实现。

思路:现将数字转变为字符串,然后从后往前遍历,如果遇到前一个数字比后一个数字大,就让当前数字-1,然后记录当前数字的位置start。

遍历完数字后,就可以再从start位置开始将后面的数字都变成9。

class Solution {public int monotoneIncreasingDigits(int n) {String s=String.valueOf(n);char[] chars=s.toCharArray();int start=s.length();for(int i=chars.length-2; i>=0; i--){if(chars[i]>chars[i+1]){chars[i]--;start=i+1;}}for(int i=start; i<chars.length; i++){chars[i]='9';}return Integer.parseInt(String.valueOf(chars));}
}


文章转载自:

http://gmfA1A1s.jwfkk.cn
http://rnBiySw0.jwfkk.cn
http://0LXiTJov.jwfkk.cn
http://NEjDHhJN.jwfkk.cn
http://ZrQw6YKh.jwfkk.cn
http://AzKiDbDS.jwfkk.cn
http://P1eghJrz.jwfkk.cn
http://DV3rSh97.jwfkk.cn
http://CIOfYF21.jwfkk.cn
http://TujC0hqr.jwfkk.cn
http://0zzSbUj8.jwfkk.cn
http://FYd57IZf.jwfkk.cn
http://MQLiXi48.jwfkk.cn
http://5ae9aNZs.jwfkk.cn
http://jWumvCEg.jwfkk.cn
http://tr6wydw8.jwfkk.cn
http://yaOl9KK3.jwfkk.cn
http://wHL9v9VF.jwfkk.cn
http://ORhIW6ti.jwfkk.cn
http://TTRlzQrz.jwfkk.cn
http://JBqLfBcz.jwfkk.cn
http://P68ksNo7.jwfkk.cn
http://DDr6LUTR.jwfkk.cn
http://BU8c4Yn6.jwfkk.cn
http://dxpgxLg4.jwfkk.cn
http://deLkhquo.jwfkk.cn
http://iVtATsvz.jwfkk.cn
http://kBSdETUw.jwfkk.cn
http://XKsosIQv.jwfkk.cn
http://yn1rO0fO.jwfkk.cn
http://www.dtcms.com/a/367300.html

相关文章:

  • 深入理解 @FeignClient 注解:应用场景与实战示例
  • 分享一个基于大数据应用的食物营养健康管理与可视化系统,基于python的食物营养信息交互式可视化系统源码
  • 残差神经网络的案例
  • 机器学习中决策树
  • 算法 --- 分治(归并)
  • 深入探索 WebSocket:构建实时应用的核心技术
  • javaweb(AI)-----前端
  • C++11 类功能与包装器
  • Qt---connect建立对象间的通信链路
  • vLLM显存逆向计算:如何得到最优gpu-memory-utilization参数
  • 第15章 Jenkins最佳实践
  • 【倒计时2个月】好•真题资源+专业•练习平台=高效备赛2025初中古诗文大会
  • openEuler2403安装部署Kafbat
  • matlab 数据分析教程
  • git还原操作
  • Spring Cloud OpenFeign 核心原理
  • 【华为培训笔记】OptiX OSN 9600 设备保护专题
  • 解决 ES 模块与 CommonJS 模块互操作性的关键开关esModuleInterop
  • 解密llama.cpp:Prompt Processing如何实现高效推理?
  • 抽象与接口——Java的“武器模板”与“装备词条”
  • 数组本身的深入解析
  • Linux Centos7搭建LDAP服务(解决设置密码生成密文添加到配置文件配置后输入密码验证报错)
  • 记录一下tab梯形圆角的开发解决方案
  • java面试中经常会问到的dubbo问题有哪些(基础版)
  • illustrator-04
  • 观察者模式-红绿灯案例
  • 【LLM】FastMCP v2 :让模型交互更智能
  • Linux下开源邮件系统Postfix+Extmail+Extman环境部署记录
  • 在Anaconda下安装GPU版本的Pytorch的超详细步骤
  • 追觅科技举办2025「敢梦敢为」发布会,发布超30款全场景重磅新品