leetcode(56-60)

LeetCode+ 56 - 60 双指针算法、位运算、离散化、区间合并_小雪菜本菜的博客-优快云博客 给我们一堆没有任何交集的区间 把区间分为前面完全每交集的一部分,分成后面完全没交集的一部分,中间有交集的一部分中间有交集的一部分合并之后一定会变成一个区间从第k个区间开始连续一段存在与指定区间有相交的关系,需要将有相交关系的区间与指定区间进行合并,将合并后的区间加入到 res 中,当枚举的区间的 左端点 ...... 阅读详情

56. 合并区间

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
/**
 * Definition for an interval.
 * struct Interval {
 *     int start;
 *     int end;
 *     Interval() : start(0), end(0) {}
 *     Interval(int s, int e) : start(s), end(e) {}
 * };
 */
class Solution {
public:
    vector<Interval> merge(vector<Interval>& intervals) {
        vector<Interval> res;
        if(intervals.empty()) return res;
        int size = intervals.size();
        sort(intervals.begin(), intervals.end(), compare);
        res.push_back(intervals[0]);
        for(int i=0; i<size; i++){
            if(res.back().end >= intervals[i].start){
                Interval tmp = res.back();
                res.pop_back();
                tmp.end = max(tmp.end, intervals[i].end);
                res.push_back(tmp);
            } else {
                res.push_back(intervals[i]);
            }
        }
        return res;
    }
    static bool compare(Interval a, Interval b){
        return a.start<b.start;
    }
};

57. 插入区间

给出一个无重叠的 ,按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

示例 1:

输入: intervals = [[1,3],[6,9]], newInterval = [2,5]
输出: [[1,5],[6,9]]

示例 2:

输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出: [[1,2],[3,10],[12,16]]
解释: 这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
/**
 * Definition for an interval.
 * struct Interval {
 *     int start;
 *     int end;
 *     Interval() : start(0), end(0) {}
 *     Interval(int s, int e) : start(s), end(e) {}
 * };
 */
class Solution {
public:
    vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) {
        intervals.push_back(newInterval);
        return merge(intervals);
    }
    vector<Interval> merge(vector<Interval>& intervals) {
        vector<Interval> res;
        if(intervals.empty()) return res;
        int size = intervals.size();
        sort(intervals.begin(), intervals.end(), compare);
        res.push_back(intervals[0]);
        for(int i=0; i<size; i++){
            if(res.back().end >= intervals[i].start){
                Interval tmp = res.back();
                res.pop_back();
                tmp.end = max(tmp.end, intervals[i].end);
                res.push_back(tmp);
            } else {
                res.push_back(intervals[i]);
            }
        }
        return res;
    }
    static bool compare(Interval a, Interval b){
        return a.start<b.start;
    }
};

58. 最后一个单词的长度

给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指由字母组成,但不包含任何空格的字符串。

示例:

输入: "Hello World"
输出: 5
class Solution {
public:
    int lengthOfLastWord(string s) {
        if(s.length()==0) return 0;
        int res=0,len=0;
        for(int i=0; i<s.length(); i++){
            if(s[i] != ' '){
                len++;
            } else if(s[i]==' ' && len!=0){
                res=len;
                len=0;
            }
        }
        if(len!=0) res=len;
        return res;
    }
};

59. 螺旋矩阵 II

给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3
输出:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> res(n,vector<int>(n,0));
        int loop=n/2+1;
        int floor=0;
        int number=1;
        while(loop--){
            for(int i=floor; i<n-floor; i++) res[floor][i] = number++;
            if(loop==0 && n%2==1) break;
            for(int i=floor+1; i<n-floor; i++) res[i][n-floor-1] = number++;
            for(int i=n-floor-2; i>=floor; i--) res[n-floor-1][i] = number++;
            if(loop==0 && n%2==0) break;
            for(int i=n-floor-2; i>floor; i--) res[i][floor] = number++;
            floor++;
        }
        return res;
    }
};

60. 第k个排列

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。

按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

给定 n 和 k,返回第 k 个排列。

说明:

  • 给定 n 的范围是 [1, 9]。
  • 给定 k 的范围是[1,  n!]。

示例 1:

输入: n = 3, k = 3
输出: "213"

示例 2:

输入: n = 4, k = 9
输出: "2314"
class Solution {
public:
    string getPermutation(int n, int k) {
        vector<int> nums;
        string res;
        for(int i=1; i<=n; i++) nums.push_back(i);
        for(int i=1; i<k; i++) nextPermutation(nums);
        for(int i=0; i<nums.size(); i++) res+=nums[i]+'0';
        return res;
    }
    void nextPermutation(vector<int>& nums) {
        int n=nums.size();
        for(int i=n-1;i>=0;i--){
            for(int j=n-1;j>i;j--){
                if(nums[i]<nums[j]){
                    swap(nums[i],nums[j]);
                    sort(nums.begin()+i+1,nums.end());
                    return;
                }
            }
        }
        sort(nums.begin(),nums.end());
    }
}; 

(以上题目均摘自leetcode)

【Audio driver】深入解析mixer_paths.xml中的音频通路配置 本文深入解析了Android音频驱动开发中的核心配置文件mixer_paths.xml。文章以高通平台为例,详细阐述了音频通路(FE、BE、DSP、Device)的概念与连接逻辑,并通过实战案例拆解了扬声器与麦克风通路的配置方法、关键控件作用及调试技巧,是理解与定制Android音频系统的实用指南。 阅读详情

相关推荐

Python连接高斯数据库踩坑实录:从SASL报错到SSL安全连接的完整指南

本文详细记录了Python连接高斯数据库时遇到的SASL authentication报错及其解决方法。通过剖析SASL认证机制,对比了修改数据库配置、使用官方驱动等方案的利弊,并重点提供了通过自动化脚本生成SSL证书,实现安全、免密连接的完整指南,帮助开发者彻底解决连接难题。

weixin_28340315的博客 438

leetcode56

题目: Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8,10],[15,18], return [1,6],[8,10],[15,18]. 解法一: 这道和之前那道 Insert Interval 很类似,这次题目要求我们合并区间,之前那题...

hua111hua的博客 534

西门子Simotion运动控制

SIMOTION

rjimhcd的博客 3024

LeetCode 实践练习56-60

LeetCode—56(合并区间) 方法:发现若区间重叠,则后面区间的start > 前面区间的end。但是前提是得排序。因此先进行排序,将第一个区间存入结果,然后第二个开始遍历区间集,判断是否重叠,如果有重叠则将res中最后一个区间的end值与当前遍历end值取max。然后继续遍历。 C++代码: class Solution { public: vector<Interv...

qq_40104034的博客 238

使用网分对晶体ESR/L1/C1/C0进行测量计算

Use R&amp;S Vector Network Analyzer test XTAL ESR/L1/C1/C0 測量方法:使用儀器的Port1端口,測量XTAL的S11,通過諧振的參數計算出ESR/L1/C1/C0的值。 實際晶體的等效模型:通常方便晶體分析,使用下圖(b)的等效模型,但實際測量發現晶體存在多個串聯諧振點,實際等效模型更接近(c)。 儀器測量到的S11,其中M...

qq_39138630的博客 2085

新手避坑指南:从GEO数据库下载单细胞测序数据的5个关键步骤(附实操截图)

本文为单细胞测序数据下载新手提供5个关键避坑步骤,涵盖数据搜索准备、样本量评估、文件选择决策、元数据诊断及高效下载技术。通过实操截图和代码示例,帮助研究者快速锁定GEO数据库中的优质单细胞测序数据,避免常见错误。

weixin_30296405的博客 666

Leetcode Hot100 56-60

此时有序部分用二分法查找。无序部分再一分为二,其中一个一定有序,另一个可能有序,可能无序。思路:将数组一分为二,其中一定有一个是有序的,另一个可能是有序,也能是部分有序。

Tom336853的博客 283

Conda安装cuda指定版本遇到的一个大坑,导致pytorch无法使用cuda且nvcc -V显示错误的cuda版本

24年3月份的时候用conda install nvidia/label/cuda-11.x.x::cuda还挺正常的,能直接安装11.x.x版本的cuda,我还安利给同学用。但现在5月份不知道为什么这些命令都只会安装最新的cuda12.4,不知道是我哪里设置有问题还是官网的安装目录里的环境配置换了?我在三台不同的服务器上都尝试了安装不同版本的cuda,但最后安装下来的都是12.4版本。

weixin_43933424的博客 8892

LeetCode 56~60

前言 本文隶属于专栏《LeetCode 刷题汇总》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构请见LeetCode 刷题汇总 正文 幕布 幕布链接 56. 合并区间 题解 Above solution with modified input​ cur,prev class Solution { public int[][] merge(int[][] intervals) { Arrays.sort(intervals, (a,

Shockang的博客 6140

【DeepSeek R1构建本地RAG知识库】数据结构化清洗-工作流自动清洗

在构建本地RAG知识库时,数据结构化清洗是关键但繁琐的步骤。传统方法效率低且易出错,而低代码/无代码平台如Dify提供了更高效的解决方案。Dify通过可视化工作流设计,集成大模型智能处理,支持多格式输入输出,无需编码即可完成复杂的数据清洗任务。文章详细介绍了数据结构化的核心困境、目标、价值及类型,并比较了TXT与Markdown在RAG系统中的适用性。最后,通过Dify平台实战演示了如何在20分钟内完成规则制度文档的结构化清洗,输出标准化数据,展示了自动化工作流在数据处理中的高效性和便捷性。

少说,多做 1222

[VCS]门级仿真及SDF反标

摘要:门级仿真在STA工具普及后仍是验证的重要环节,主要用于检查SDC完备性、异步电路时序、网表完整性及为功耗分析提供波形。门级仿真分为不带时序反标的前仿和带SDF反标的后仿,后仿需加载SDF文件提供精确延时信息。VCS提供多种仿真选项控制时序检查行为,SDF反标可通过命令或系统函数实现。后仿需特别注意关闭notimingcheck选项以确保时序检查有效性,并建议检查SDF反标报告和波形验证延时一致性。

元直的博客 9792

【JavaScript】LeetCode:56-60

【代码】【JavaScript】LeetCode:56-60。

weixin_45980065的博客 1620

3.DJI-payload SDK自定义控件的设计:

自定义控件(Widget)是指负载运行时,在用户界面中显示的自定义 UI 控件,以帮助用户快速查看负载独特的设备状态,或者对负载设进行设置。这些 UI 控件可以显示在以下用户界面中。Pilot 2 应用程序;大疆智图;基于 MSDK 开发的应用程序。这种自定义控件并不是通过 MSDK 实现的,而是通过 PSDK 的配置实现的。。

哒宰的博客 770

【LeetCode Solutions】LeetCode 56 ~ 60 题解

【LeetCode Solutions】LeetCode 56 ~ 60 题解

一只快乐的小蒟蒻~ 497

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

leetcode/56-60

160-相交链表 public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) { return null; } ListNode pA = headA, pB = headB; while (pA != p

fan__lee的博客 171

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

力扣爆刷第94天之hot100五连刷56-60

题目链接:https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/?题目链接:https://leetcode.cn/problems/word-search/description/?思路:集合元素无重,要求元素可复用,那么需要索引位置,又因为可复用,无需加1,然后掌握一点早停的策略。思路:子集问题,本题集合元素无重,要求搜集所有子集,很简单,递归有起始索引,然后搜集所有节点。

qq_43511039的博客 540

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

力扣爆刷第114天之CodeTop100五连刷56-60

题目链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/description/思路:很典型的题目,递归构造二叉树,为了节省时间,先用一个map记录下来根节点在中序的索引,通过这个索引,可以确定左右子树各有多少元素,由此可以敲定边界条件,把握住这个思路就可以。题目链接:https://leetcode.cn/problems/min-stack/description/

qq_43511039的博客 426

每日5题Day12 - LeetCode 56 - 60

【代码】每日5题Day12 - LeetCode 56 - 60。

alimamaalala的博客 410

【LeetCode】《剑指Offer》第Ⅶ篇⊰⊰⊰ 56 - 60题

【LeetCode】《剑指Offer》第Ⅶ篇⊰⊰⊰ 56 - 60题 文章目录【LeetCode】《剑指Offer》第Ⅶ篇⊰⊰⊰ 56 - 60题56 - I. 数组中数字出现的次数(easy)56 - II. 数组中数字出现的次数 II(medium)57. 和为s的两个数字(easy)57 - II. 和为s的连续正数序列(easy)58 - I. 翻转单词顺序(easy)58 - II. 左旋转字符串(easy)59 - I. 滑动窗口的最大值(easy)59 - II. 队列的最大值(medium)

像写诗一样优雅地写代码~ 4048

leetcode题解python版:56-60

56、合并区间 给出一个区间的集合,请合并所有重叠的区间 解:先排序,然后从左到右遍历,依次加入栈,再比较一下前后两个区间是否交叉即可 class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: n=len(intervals) if not intervals or n==1: return intervals i=1

baidu_41689104的博客 361

面试笔试杂项积累-leetcode 56-60

56.56-Merge Intervals-Difficulty:Hard Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8,10],[15,18], return [1,6],[8,10],[15,18]. 思路 查找数组集中是

wolf96的专栏 627

力扣爆刷第158天之TOP100五连刷56-60(子集、最小栈、最长有效括号)

思路:字符串相乘,首先确定拼接方法,采用数组拼接,方便计算,长度的话,两个字符串长度相加的长度正好覆盖最大乘积,至于进位如何计算,因为每次相乘都是个位数进行相乘,结果不会超过两位,所以维护两位的窗口,后一位用来累加进位,前一位作为进位。思路:求最小栈,要求为就是一个正常的栈先进后出,然后可以常数时间获取最小值,其实只需要维护两个栈,一个栈正常入栈出栈,另一个栈是最小值,当前元素小于栈顶时才入栈,否则把栈顶元素重复入栈。而且元素无重不需要去重。

qq_43511039的博客 500

Python小白 Leetcode刷题历程 No.56-No.60 合并区间、插入区间、最后一个单词的长度、螺旋矩阵Ⅱ、第k个排列 (有题干 有代码 有思路心得)

文章目录Python小白 Leetcode刷题历程 No.56-No.60 合并区间、插入区间、最后一个单词的长度、螺旋矩阵Ⅱ、第k个排列写在前面:No.56.合并区间No.57.插入区间No.58.最后一个单词的长度No.59.螺旋矩阵ⅡNo.60.第k个排列 Python小白 Leetcode刷题历程 No.56-No.60 合并区间、插入区间、最后一个单词的长度、螺旋...

LanXiu_的博客 635

代码随想录算法训练营第60期第三十五天打卡

今天是我们贪心算法章节的最后一天,今天有三道题目需要讲解,但是最后又一道题目叫做监督二叉树的题目难度比较大,我打算二刷代码随想录的时候再来给大家讲解,因此我们今天就只讲解前两道题目,昨天的区间重叠问题是贪心算法里面很重要的一种题型,今天还有一道区间重叠的问题,这样的话我们整个代码随想录已经刷完一半多了,还有一个动态规划与图论就刷完代码随想录了,当然一刷肯定存在很多不扎实的地方,我会二刷再来巩固的,那我们就开始今天的内容。 这一道题其实只看题目就差不多可以看出这又是一道贪心算法的题目,区间合并很明显

2401_83782806的博客 949

【Android春招每日一练】(三十) LeetCode Hot 5题

文章目录概览LeetCode Hot2.56 多数元素2.57 打家劫舍2.58 岛屿数量2.59 反转链表2.60 课程表总结 概览 LeetCode Hot:多数元素、打家劫舍、岛屿数量、反转链表、课程表 LeetCode Hot 2.56 多数元素 同剑指offer38题 摩尔投票法 2.57 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个

z18223345669的博客 729

力扣[LeetCode]-面试150Java代码实现

为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

kearily的博客 1222
上一篇: leetcode(51-55)
下一篇: leetcode(61-65)
小小螺丝刀
博客等级 码龄10年 41粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值