首页 > 编程语言 >代码随想录算法训练营第第37天 | 56. 合并区间 、738.单调递增的数字、968.监控二叉树

代码随想录算法训练营第第37天 | 56. 合并区间 、738.单调递增的数字、968.监控二叉树

时间:2024-06-13 23:43:37浏览次数:25  
标签:right return 56 随想录 intervals let 二叉树 left

  1. 合并区间
    本题也是重叠区间问题,如果昨天三道都吸收的话,本题就容易理解了。
    https://programmercarl.com/0056.合并区间.html
能做出来
/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function(intervals) {
    intervals.sort((a, b)=>{
        if (a[0] !== b[0]) {
            return a[0] - b[0];
        } else {
            return a[1] - b[1];
        }
    });
    const res = [intervals[0]];
    for (let i=1; i<intervals.length;i++) {
        if (intervals[i][0]<=res[res.length-1][1]) {
            res[res.length-1][1] = Math.max(intervals[i][1], res[res.length-1][1]);
        } else {
            res.push(intervals[i]);
        }
    }
    return res;
};

738.单调递增的数字
https://programmercarl.com/0738.单调递增的数字.html

没思路
利用字符串前放+号进行隐式转换
 n = n.toString()
    n = n.split('').map(item => {
        return +item
    })
    let flag = Infinity
    for(let i = n.length - 1; i > 0; i--) {
        if(n [i - 1] > n[i]) {
            flag = i
            n[i - 1] = n[i - 1] - 1
            n[i] = 9
        }
    }

    for (let i = flag; i< n.length;i++) {
        n[i] = 9
    }

    n = n.join('')
    return +n

968.监控二叉树 (可跳过)

本题是贪心和二叉树的一个结合,比较难,一刷大家就跳过吧。
https://programmercarl.com/0968.监控二叉树.html

太难,看视频题解理解了
注意三个if的顺序不能调换
var minCameraCover = function(root) {
    let result = 0
    function traversal(cur) {
        if(cur === null) {
            return 2
        }

        let left = traversal(cur.left)
        let right = traversal(cur.right)

        if(left === 2 && right === 2) {
            return 0
        }

        if(left === 0 || right === 0) {
            result++
            return 1
        }

        if(left === 1 || right === 1) {
            return 2
        }

        return -1
    }

    if(traversal(root) === 0) {
        result++
    }

    return result

};

总结
可以看看贪心算法的总结,贪心本来就没啥规律,能写出个总结篇真的不容易了。
https://programmercarl.com/贪心算法总结篇.html

标签:right,return,56,随想录,intervals,let,二叉树,left
From: https://www.cnblogs.com/yuanyf6/p/18246973

相关文章

  • 代码随想录算法训练营第三十七天 | 56.合并区间 738.单调递增的数字
    56.合并区间题目链接文章讲解视频讲解思路:  按左区间排序;  遍历所有区间,如果当前区间的左边界小于等于上一个区间的右边界,则合并区间(新区间的左边界为上一个区间的左边界,新区间的右边界为上一个区间的有边界和当前区间有边界中较大的一个)classSolution{public:......
  • 代码随想录算法训练营第九天 |
    151.反转字符串中的单词题目:给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。返回单词顺序颠倒且单词之间用单个空格连接的结果字符串。注意:输入字符串s中可能会存在前导空格、尾随空......
  • 数据结构 7.二叉树的性质
    ......
  • C138 线段树分治 P2056 [ZJOI2007] 捉迷藏
    视频链接:C138线段树分治P2056[ZJOI2007]捉迷藏_哔哩哔哩_bilibili   P2056[ZJOI2007]捉迷藏-洛谷|计算机科学教育新生态(luogu.com.cn)//线段树分治O(nlognlogn)#include<iostream>#include<cstring>#include<algorithm>#include<vector>#inclu......
  • 代码随想录第7天 |● 454.四数相加II●383. 赎金信●15. 三数之和●18. 四数之和●哈
    题目:454.四数相加Ⅱ思路:0.知道用map,但是map存啥1.暴力法,四层循环遍历哈哈哈哈2.分而治之,化繁为简,四个数组a,b,c,d分成两组,题目求符合要求的元祖个数,所以将a+b的值和出现次数存储,之后遍历查找c+d中0-(c+d)出现的次数,统计为结果时间复杂度:O(n^2)空间复杂度:O(n^2),最坏情况下A......
  • 2Gb 256Mx8 KTDM2G3C818BGCEAT KTDM2G3C818BGIEAT(SDRAM) KTM4GH1AHI01 KTM8GL1ASI01
    一、DDR3(L)SDRAM概述SMART’sDDR3(L)SDRAM组件与行业广泛兼容,并提供x8和x16配置。这些1.35v(DDR3L)和1.5V(DDR3)器件采用标准78和96引脚网格阵列封装,时钟速度为1866Mbps,密度为1Gb、2Gb和4Gb。宽/汽车工作范围器件也针对汽车AEC-Q1002类应用进行了测试和认证。DDR3(L)SDRAM......
  • 力扣刷题记录: 1339. 分裂二叉树的最大乘积
        本题是第174场周赛的Q3,LC竞赛分为1675.方法一.递归(超时)    单纯使用递归对每一个节点进行遍历,代码如下:classSolution{longlongans=-1;public:intmaxProduct(TreeNode*root){longlongtotal_sum=sum(root);......
  • 代码随想录算法训练营第10天 | 队列和栈基础知识、225用队列实现栈、用栈实现队列
    232用栈实现队列https://leetcode.cn/problems/implement-queue-using-stacks/用栈实现队列代码随想录https://programmercarl.com/0232.用栈实现队列.html#其他语言版本225用队列实现栈https://leetcode.cn/problems/implement-stack-using-queues/description/用队列实现......
  • CSP历年复赛题-P5663 [CSP-J2019] 加工零件
    原题链接:https://www.luogu.com.cn/problem/P5663题意解读:工人是图中的点,传送带是图中的无向边,给出q个询问a,l,判断是否能有一条1号点到a点的路径为l。解题思路:考试的关键是拿分!同样可以来面向数据编程:1、测试点 1∼4,1≤......
  • (天源)代理 TP4056 SOP-8 1A 锂电池充电器
    产品描述TP4056是一款单节锂离子电池恒流/恒压线性充电器,采用底部带散热片的SOP8封装以及简单的外部应用电路,非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高......