这个问题如果注意,用一句就可以解决

sort(nums.begin(),nums.end());

完事。但是人家明确说了,不能用代码库中的排序函数。我们就得自己去实现排序。其实这个问题很简单,因为里面只有三种颜色,用0 1 2 表示。思想也很简单,就是我们用双指针遍历数组。如果遇到0放在前面,遇到1就在那个位置,遇到2跳到最后。代码如下,个人感觉用双指针来解决数组的排序问题特别好使。

class Solution {
public:void sortColors(vector<int>& nums) {int n=nums.size();int tmp=0,i=0;while(i<n){if(nums[i]==0)swap(nums[tmp++],nums[i++]);else if(nums[i]==1)i++;elseswap(nums[i],nums[--n]);}}
};

合并区间也可以用双指针去解决一个指针用来指向当前元素,一个指针指向当前元素的下一个元素。

我们首先利用sort函数对数组进行排序,排序之后我们可以更方便的去比较。

这个题我们可以分情况讨论。首先最简单的情况就是不交叉比如[1,3][4,9]。即n[i][0]>c[i][1]

其中n代表下一个指针,c代表当前指针。这个时候直接将当前元素[1,3]直接保存即可无需再比较。只需要拿着[4,9]去和后边的比较。

第二种情况[4,9][5,8]前面的包含后边的。用代码表示即n[i][1]<=c[i][1]这个时候不用管[5,8],因为[5.8]已经包含于[4,9],拿着[4,9]和后边的数继续进行比较。即n++,c不变。

最后一种情况,就是有重叠的情况,[4,9][7,10]这种只需零[4,9]中的9等于10即可用代码表示,c[i][1]=n[i][1]即可,n=++完事

贴代码

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {if (intervals.size() == 0 || intervals.size() == 1) return intervals;int u = 0, v = 0;vector<vector<int>> ans;// 思路①sort(intervals.begin(), intervals.end());// 思路②while (v < intervals.size()) { if (intervals[v][0] > intervals[u][1]) {ans.emplace_back(intervals[u]);u = v;} else if (intervals[v][1] <= intervals[u][1]) {v++;} else {intervals[u][1] = intervals[v][1];v++;}}//思路③ans.emplace_back(intervals[u]);return ans;}
};

双指针解决数组排序问题相关推荐

  1. Leetcode快速入门之第二节课: 使用双指针+区间法解决数组问题

    文章目录 1. 问题引入 2. Leetcode 26题分析 3. 双指针+区间法 引入 4. 数据验证 5. 其他问题 5.1 80题:删除有序数组中的重复项II 5.2 27题:删除元素 5.3 ...

  2. 双指针解决力扣两/三数之和问题

    双指针解决力扣两/三数之和问题 文章目录 双指针解决力扣两/三数之和问题 一.问题描述 二.分析 1.暴力 2.排序+双指针法 3.hash法 三.问题描述 四.分析 方法一:排序 + 双指针 五.代 ...

  3. Bailian2752 字符串数组排序问题【排序】

    2752:字符串数组排序问题 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一组字符串,按指定的排序方式输出这些字符串.排序可是自然顺序(inc).自然逆序(dec).忽略大小写顺 ...

  4. C++ sqlite3解决中文排序问题

    导言:sqlite3默认的编码方式为UTF8编码,而在UTF8编码下,中文不是按照拼音顺序编码的,所以想解决中文排序问题,必须自定义排序规则,将UTF8编码转换成GB2312编码(GB2312编码中文 ...

  5. 2021年scrapy一分钟内爬取笔趣阁整本小说存为txt|解决章节排序问题

    本人是一个小说迷,喜欢用电纸书看小说,但苦于难以寻找网络小说的txt版本,加之最近学习了一下怎么用scrapy爬取网页数据,所以想到去使用scrapy框架来爬取笔趣阁小说存为txt文件,在爬取过程中对 ...

  6. 如何解决数组下标越界异常

    如何解决数组下标越界异常 今天在写接口的时候运行发现有一个数组的下标越界异常了, 检查了一下发现实在上面的数组中有一些字符串没有大写,造成跟下面的数组字符串不一样,所以导致了数组下标越界异常.

  7. Java 解决数组长度不可变问题 Java 重新定义数组

    // 解决数组长度不可变的问题 // 因为数组在定义的时候已经给定了长度,所以如果有新的元素加入,数组的本身已经放不下了 // 这时候就需要重新将原数组的元素拿出来重新定义数组,将旧元素和新元素重新赋 ...

  8. python 的数组排序问题

    python 的数组排序问题 例题 在有序列表中添加一个元素,使列表仍保持有序.(列表中的元素为数值型数据)本题要求在2行内分别读入一个有序表和一个整数.输出仍旧有序的列表数据 输入格式 输入在2行中 ...

  9. 经典算法:双指针问题--数组合并

    算法-程序的灵魂,没错就是灵魂 ! 今天我们来聊聊关于双指针问题中的数组合并问题 内容参考:<你也能看得懂的Python算法书> 转载请标注: https://blog.csdn.net/ ...

最新文章

  1. 【青少年编程竞赛交流】12月份微信图文索引
  2. 动态验证码制作(RandomCodeImage )
  3. jsp mysql在线考试系统源码_jsp+ssm+mysql实现的学生在线考试系统项目源码附带视频导入运行教程...
  4. python如何使用图片做背景_用Python批量给照片换底色,基于opencv模块
  5. linux系统中安装和使用rz/sz命令详解
  6. python入门经典27版_【python】编程语言入门经典100例--27
  7. 计算机审计风险背景,计算机环境下审计风险的特征与对策研究 毕业论文.doc
  8. C语言解决约瑟夫问题详解的代码
  9. 相关滤波目标追踪一:鼻祖Mosse算法的matlab解析
  10. (*长期更新)软考网络工程师学习笔记——Section 13 Linux网络配置命令
  11. 8月新亲测完美短视频点赞系统支持抖音+快手+刷宝+微视等所有主流短视频点赞/关注/评论系统源码
  12. github问题之Unable to retrieve your user info from the server
  13. 计算二维紧束缚模型费米面和nesting程序新思路
  14. 高斯 二维 matlab,MATLAB实例:二维高斯分布图
  15. 巴比特 | 元宇宙每日必读:传腾讯成立XR部门,元宇宙板块再次上涨,多家券商发报告关注虚拟人的投资机会...
  16. Minecraft Fabric 教程 #8 添加附魔书
  17. 淘淘商城第56讲——测试一下商品搜索功能
  18. 简评几款开源RISC-V处理器
  19. 【渝粤题库】国家开放大学2021春4924农业经济基础题目
  20. Phpstorm调试详解(包含命令行以及浏览器)

热门文章

  1. 网络测试及故障诊断方法及工具
  2. 迅速返回页面顶部代码
  3. Machine Monitoring System Document
  4. sports at liverpool
  5. find a group of people who want to do similar things with you
  6. powerbi learning: look up table and data table
  7. 发现一个骨灰级图形学大神的博客
  8. 中国移动2016年低端路由器交换机集采结果出炉锐捷网络大份额中标
  9. golang 程序部署及Supervisord deamon 运行
  10. AJAX中的请求方式以及同步异步的区别