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

leetcode日记(74)合并两个有序数组

还是很简单很基础的。一开始在思考后面补的全是0怎么知道0是原本数组的还是要替换成nums2的元素的,后来发现其实一开始可以直接剔除nums1后的n个元素……

使用双指针:

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        if(nums2.empty()) return;
        auto i=nums1.begin();
        auto j=nums2.begin();
        nums1.erase(nums1.end() - nums2.size(), nums1.end());
        if(i==nums1.end()) {
            nums1.insert(nums1.begin(),nums2.begin(),nums2.end());
            return;
        }
        while(1){
            if(*i<*j){
                i++;
                if(i==nums1.end()){
                    nums1.insert(nums1.end(),j,nums2.end());
                    return;
                }
            }
            else if(*i>=*j){
                nums1.insert(i,*j);
                j++;
                if(j==nums2.end()) return ;
            }
        }
    }
};

在nums1和nums2中放指针,不断循环比较俩指针指向元素的大小,然后在其中某一个遍历到结尾时将另一个后面的部分接过来。

相关文章:

  • 蓝耘元生代智算云:解锁百亿级产业变革的算力密码
  • 【STM32安全性研究】STM32F103RCT6固件读取
  • 计算机毕业设计SpringBoot+Vue.js常规应急物资管理系统(源码+文档+PPT+讲解)
  • c++中explicit的作用
  • UI组件库及antd
  • Java 泛型(Generics)详解与使用
  • python多线程之ThreadLocal 笔记
  • 编程题 - 明明的随机数【JavaScript/Node.js解法】
  • 【知识】torchrun 与 torch.multiprocessing.spawn 的对比
  • python爬虫系列课程5:JavaScript语法介绍
  • 【Java】多线程篇 —— 线程池
  • 蓝桥杯 灯笼大乱斗【算法赛】
  • 设计模式之命令模式
  • Git操作指南:分支合并、回退及其他重要操作
  • json介绍、python数据和json数据的相互转换
  • GPIO概念
  • 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测
  • js加密之延伸requestAnimationFrame
  • 【Block总结】SAFMN,空间自适应调制与局部特征增强的协同设计|即插即用
  • 面试基础 ---深入解析JDK8类加载机制
  • 视频丨为救心梗同学缺席职教高考的小伙姜昭鹏完成补考
  • 美官方将使用华为芯片视作违反美出口管制行为,外交部回应
  • 中国进出口银行:1-4月投放制造业中长期贷款超1800亿元
  • 中日东三省问题的源起——《1905年东三省事宜谈判笔记》解题
  • 车载抬头显示爆发在即?业内:凭借市场和产业链优势,国内供应商实现反超
  • 中国至越南河内国际道路运输线路正式开通