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

88. 合并两个有序数组

时间:2023-10-20 14:58:47浏览次数:52  
标签:数组 int 合并 -- 88 有序 nums1 nums2

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。


示例 1:

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]
解释:需要合并 [1,2,3] 和 [2,5,6] 。
合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。

思路

一个是从后往前确定两组中该用哪个数字
另一个是结束条件以第二个数组全都插入进去为止


class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int index1 = m-1;
        int index2 = n-1;
        int index = nums1.size() - 1;
        while(index2 >= 0){
            if(index1 >= 0 && nums1[index1] > nums2[index2]){
                swap(nums1[index--],nums1[index1--]);
            }else{
                swap(nums1[index--],nums2[index2--]);
            }
        }
        return;
    }
};

标签:数组,int,合并,--,88,有序,nums1,nums2
From: https://www.cnblogs.com/lihaoxiang/p/17777091.html

相关文章

  • 把数组中相同id的项放到一个数组中
    vararr=[{'id':'1001','name':'值1','value':'111'},{'id':'1001','name':'值1','va......
  • RK3588编解码之mpp解码demo解析: mpi_dec_test
    1.简介mpi_dec_test是rockchip官方解码demo本篇文章进行mpi_dec_test的代码解析,解码流程解析2.环境介绍硬件环境:ArmSoM-W3RK3588开发板软件版本:OS:ArmSoM-W3Debian113.mpp解码流程解析 mpp_create:获取MppCtx实例以及MppApi结构体mpp_ini......
  • 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-09-30:用go语言,给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1, 每一
    2023-09-30:用go语言,给你一个整数数组nums和一个整数k。nums仅包含0和1,每一次移动,你可以选择相邻两个数字并将它们交换。请你返回使nums中包含k个连续1的最少交换次数。输入:nums=[1,0,0,1,0,1],k=2。输出:1。答案2023-09-30:步骤描述:1.定义一个函数minMoves......
  • 数组和切⽚ - Go语言从入门到实战
    数组和切⽚-Go语言从入门到实战数组的声明packagemainimport"fmt"funcmain(){vara[3]int//声明并初始化为默认零值a[0]=1fmt.Println("a:",a)//输出:a:[100]b:=[3]int{1,2,3}//声明同时初始化fmt.Println("b:",b)//......
  • 350. 两个数组的交集 II
    目录题目法一、排序+双指针法二、网友一行解法题目给你两个整数数组 nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例1:输入:nums1......
  • [LOJ3626/QOJ4889] 愚蠢的在线法官
    考虑这个矩阵长啥样,首先显然\(A\)不能重复否则答案是\(0\)(有两行两列相同)。把\(A\)重标号为DFS序的顺序,那么行列式的值不改变,因为交换\(A_i,A_j\)相当于同时交换两行两列。考虑把权值\(v\)做树上差分,令\(B_u=v_u-v_{fa(u)}\),那么就等价于对每个\(i\)把\(i\)子树......
  • 记录--如何判断两个数组的内容是否相等
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助题目给定两个数组,判断两数组内容是否相等。不使用排序不考虑元素位置例:[1,2,3]和[1,3,2]//true[1,2,3]和[1,2,4]//false思考几秒:有了......
  • 962. 最大宽度坡(权值线段树, 权值树状数组)
     本题要快速找到某个数字在数组中左边<=它的数的最小下标。可以建立一个权值线段树,nums[i]处维护最小下标。classSolution{public:conststaticintN=50010,INF=0x3f3f3f3f;structNode{intl,r,v;}tr[N*4];voidpushup(int......
  • Typescript的数组类型
    TypeScript数组类型暖A暖关注IP属地:湖南2021.03.0416:08:45字数2,138阅读1,166和 JavaScript 语言一样,TypeScript 中也有数组类型。数组指的是有序的元素序列,例如 [1,2,3] 这样的就是一个数组,1、2、3 就是数组中的元素,中括号[] 内可以由任意数量的元素。......