首页 > 编程语言 >代码随想录算法训练营 | 56. 合并区间,738.单调递增的数字

代码随想录算法训练营 | 56. 合并区间,738.单调递增的数字

时间:2024-10-06 20:27:12浏览次数:1  
标签:int res 56 随想录 length intervals Integer 738 strings

56. 合并区间
题目链接:56. 合并区间
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰合并区间
日期:2024-10-06

想法:重叠区间类似问题
Java代码如下:

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

738.单调递增的数字
题目链接:738.单调递增的数字
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰单调递增的数字
日期:2024-10-06

想法:从右往左遍历,如果前一个数大于后面的数(按N数字排序),前一个数-1,后一个数置为9即可。
Java代码如下:

class Solution {
    public int monotoneIncreasingDigits(int N) {
        String[] strings = (N + "").split("");
        int start = strings.length;
        for (int i = strings.length - 1; i > 0; i--) {
            if (Integer.parseInt(strings[i]) < Integer.parseInt(strings[i - 1])) {
                strings[i - 1] = (Integer.parseInt(strings[i - 1]) - 1) + "";
                start = i;
            }
        }
        for (int i = start; i < strings.length; i++) {
            strings[i] = "9";
        }
        return Integer.parseInt(String.join("",strings));
    }
}

标签:int,res,56,随想录,length,intervals,Integer,738,strings
From: https://www.cnblogs.com/wowoioo/p/18449337

相关文章

  • 20241002每日一题洛谷P1563
    粗看题目我靠,什么方向还变来变去的(哭泣核心思想:圈内右数,圈外左数为整体逆时针数;圈外右数,圈内左数为整体顺时针数运用结构体就有了第一版源码:structpeople{ intface; charname[12];};intmain(){ intm,n; scanf("%d%d",&n,&m); peoplea[10010]; for(inti......
  • 代码随想录算法训练营day4|● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个
    学习资料:https://programmercarl.com/0024.两两交换链表中的节点.html学习记录:24.两两交换链表中的节点(添加虚拟头节点;交换1、2节点和3、4节点时,要用1前面的cur,先保存1为temp且3保存为temp1,cur指向2,再把2指向temp,因为cur指向2后就与1没关联了)点击查看代码#Definitionforsi......
  • 代码随想录算法训练营 | 452. 用最少数量的箭引爆气球,435. 无重叠区间,763.划分字母区
    452.用最少数量的箭引爆气球题目链接:452.用最少数量的箭引爆气球文档讲解︰代码随想录(programmercarl.com)视频讲解︰452.用最少数量的箭引爆气球日期:2024-10-05想法:对气球起点排序,没有重叠的箭头+1,有重叠得话将右边置为最小的右边。Java代码如下:classSolution{publ......
  • NodeJS阅读分享系统-计算机毕业设计源码65669
    基于微信小程序的阅读分享系统的设计与实现摘 要随着移动互联网的快速发展和普及,微信小程序作为一种轻量级、便捷的应用形式,受到了广泛关注和应用。在大学生群体中,阅读和分享是重要的学习和交流方式,因此开发一款基于Node.js的微信小程序阅读分享系统具有重要意义。通过该系......
  • 代码随想录算法训练营day3|● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表
    学习资料:https://programmercarl.com/链表理论基础.html#链表的类型可设置虚拟头结点dummy_head链表最后指向Null一个节点包含值和索引学习记录:203.移除链表元素(基本ListNode(),cur.next,cur.next.val)点击查看代码#Definitionforsingly-linkedlist.#classListNod......
  • 代码随想录算法训练营 | 134. 加油站,135. 分发糖果,860.柠檬水找零,406.根据身高重建队
    134.加油站题目链接:134.加油站文档讲解︰代码随想录(programmercarl.com)视频讲解︰加油站日期:2024-10-04想法:1.总汽油大于等于消耗一定能跑完,2.当前剩余汽油小于0了,只能从下一站开始重新计算Java代码如下:classSolution{publicintcanCompleteCircuit(int[]gas,int......
  • [AGC056B] Range Argmax
    发现一个序列\(x\)不止可以用一个\(p\)得到,肯定不能直接计数,考虑构造一个映射。假如已经定下了\(x\),我们通过一种固定的操作得到\(p\),这样就能改为统计可以由操作得到的\(p\)的数量,他们同样唯一对应一个\(x\)。我们考虑枚举从\(n\)到\(1\)去枚举\(v\),对每个\(v\)......
  • 代码随想录算法训练营Day2|209.长度最小的子数组 59.螺旋矩阵
    学习资料:https://programmercarl.com/数组总结篇.html#数组的经典题目移动窗格,首尾指针根据条件变化模拟行为,循环不变量(左闭右闭或左闭右开)整个过程保持一致学习记录:209.长度最小的子数组(用while使得尾指针遍历全部;用while实现,当[首:尾]之和>目标值,才移动首指针;为了求最小长度......
  • 代码随想录算法训练营 | 122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II,1005.K次
    122.买卖股票的最佳时机II题目链接:122.买卖股票的最佳时机II文档讲解︰代码随想录(programmercarl.com)视频讲解︰买卖股票的最佳时机II日期:2024-10-03想法:本来还在想什么时候买股票,结果只需要考虑每天的正收益累加就是最大的收益了。Java代码如下:classSolution{public......
  • Linux查看触摸坐标点的方法,触觉智能RK3562开发板,瑞芯微、全志等通用
    平时遇到键盘、鼠标、触摸板等输入设备无响应等异常情况时,一般通过更换设备判断异常。但在遇到更换正常设备后,输入仍然异常的情况下,可以借助evtest工具查看内核的上报事件信息,协助定位问题所在。本次使用的是触觉智能EVB3562开发板进行演示,搭载瑞芯微RK3562/RK3562J芯片,该方法也......