首页 > 其他分享 >LeetCode 88 合并两个有序数组

LeetCode 88 合并两个有序数组

时间:2023-10-04 17:56:22浏览次数:39  
标签:遍历 -- nums1 int 88 数组 LeetCode nums2

LeetCode 88 合并两个有序数组

1. 题目地址

    https://leetcode.cn/problems/merge-sorted-array/description/?envType=study-plan-v2&envId=top-interview-150

2. 题解

    这道题跟归并排序的归并操作非常类似。(具体内容可以查看我的博客,这里不再赘述。)但是有一个需要注意的点:
        1.  尽量不要用额外空间。
    我们发现,第一个数组的长度为n+m。这就代表第一个数组可以容纳下第一个第二个数组的所有元素。
    因此,我们可以将两个数组均从最后一个元素开始往前遍历。每次遍历的时候,将二者最大的元素放在第一个数组最后的位置。
    在遍历的过程中,会出现两种情况:
        1.  第一个数组遍历完,第二个数组没有遍历完。那么就将第二个数组剩余的元素依次放入第一个数组即可。
        2.  第二个数组遍历完,第一个数组没有遍历完。这种情况实际上我们不需要处理。因为,第一个数组剩余的元素已经位于正确的位置了。

3. 代码

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int k = n + m - 1;
        int i = m - 1;
        int j = n - 1;
        while(i >= 0 && j >= 0){
            if(nums1[i] >= nums2[j]){
                nums1[k--] = nums1[i--];
            }else{
                nums1[k--] = nums2[j--];
            }
        }
        while(j >= 0){
            nums1[k--] = nums2[j--];
        }
    }
};

标签:遍历,--,nums1,int,88,数组,LeetCode,nums2
From: https://www.cnblogs.com/gao79135/p/17742519.html

相关文章

  • 流畅的python笔记 (二) 2.序列构成的数组
    内置序列类型分类1:容器序列(能存放不同类型):list,tuple,collections.deque扁平序列(不能存放不同类型):str,bytes,bytearray,memoryview,array.array分类2:可变序列(能被修改):list,bytearray,array.array,collections.deque,memoryview不可变序列:tuple,str,bytes列表推导......
  • 十四天学会C++之第三天(数组和字符串)
    1.数组的定义和初始化数组是一种由相同数据类型的元素组成的集合,这些元素按照一定的顺序存储在连续的内存位置上。数组的大小在创建时是固定的,无法在运行时改变。在C++中,数组的定义和声明非常简单。定义一个数组:数据类型数组名[数组大小];数据类型可以是整数、浮点数、字符等,数组......
  • 2023-10-04:用go语言,现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号 给你
    2023-10-04:用go语言,现有一棵无向、无根的树,树中有n个节点,按从0到n-1编号给你一个整数n和一个长度为n-1的二维整数数组edges,其中edges[i]=[ai,bi]表示树中节点ai和bi之间存在一条边。每个节点都关联一个价格。给你一个整数数组price,其中price[i]是第i......
  • 2023-10-04:用go语言,现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号 给你
    2023-10-04:用go语言,现有一棵无向、无根的树,树中有n个节点,按从0到n-1编号给你一个整数n和一个长度为n-1的二维整数数组edges,其中edges[i]=[ai,bi]表示树中节点ai和bi之间存在一条边。每个节点都关联一个价格。给你一个整数数组price,其中price[i]是......
  • 02-JZ4 二维数组中的查找
    我的想法:暴力:按行遍历,比较---O(m*n)折半:行折半查找;有n行,折半n次----O(nlgn)问题:不满足时间复杂度O(m+n)正确思路:左下角开始比较arr[i][0]>target--往小找,往上走,i--;arr[i][0]<target--往大找,往右走,j++;arr[i][0]==target,即找到循环截至条件,超出数组边界适用场景:迷宫......
  • CVE-2010-2883 学习记录(漏洞战争,启动!)
    格式分析Header:文件头,用来注明pdf文件版本号Body:主要由组成文件的对象组成,例如图片,文字Cross-regerencetable:交叉引用表,用于存放所有对象的引用、位置偏移、字节长度,用于随机访问pdf中的任意对象Trailer:文件尾,给出交叉引用表的位置(指针)和一些关键对象的信息(指针),......
  • Codeforces Round 888 (Div. 3)DEF
    CodeforcesRound888(Div.3)DEFD.PrefixPermutationSums题意:给你一个长度为\(n-1\)的数组,是否能找出一个长度为\(n\)的排列,求出这个排列的前缀和,去掉前缀和数组的任意一个元素之后和原来的数组相等。例如\([6,8,12,15]\),可以是排列\([1,5,2,4,3]\)的前缀......
  • 解决警告UserWarning: Glyph 38388 (\N{CJK UNIFIED IDEOGRAPH-95F4}) missing from
    这个警告是由于在绘图时使用了当前字体不支持的字符,通常出现在使用非英文字符(比如中文、日文等)时。为了解决这个问题,你可以尝试以下几种方法:方法一:选择支持中文的字体在绘图之前,指定一个支持中文的字体。例如,可以使用matplotlib.rcParams来指定字体,示例如下:importmatplotlib.pyplo......
  • VMware vCenter Server 7.0 Update 3o 下载 (重大更新:3 项新增功能和 188 个功能修复)
    VMwarevCenterServer7.0Update3o下载(重大更新:3项新增功能和188个功能修复)集中管理vSphere环境请访问原文链接:https://sysin.org/blog/vmware-vcenter-7-u3/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwarevCenterServer是一款高级服务器管理......
  • arduino 使用String 替代不定长byte[]数组
    使用串口传输hex数据时,常用byte[]数组接收数据,若预先不能知道将要接收到数据的数量,那么byte[]数组的长度很难处理。偶尔想到用String对象来存储串口传输hex数据应当很方便,经测试,非常成功。测试程序:Stringhh="";voidsetup(){//putyoursetupcodehere,torunonce:......