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

【排序】88.合并两个有序数组

时间:2022-09-26 17:48:33浏览次数:49  
标签:nums1 88 数组 排序 ptr nums2

题目链接: https://leetcode.cn/problems/merge-sorted-array/

详情:

 

这题看起来像是数组题而不是排序题。

分析:

言归正传,这题说了是有序数组,要求在nums1上原地修改。

所以我们就要从后往前遍历,这样的话,可以把前面的位置腾出地方,不需要用额外的存储空间。

 

代码:

class Solution:
    def merge(self, nums1, m, nums2, n) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """
        # nums1, nums2的指针, 分别指向"最后一个元素"
        f_ptr, s_ptr = m-1, n-1
        # 总指针, 指向nums真正的最后一个元素
        r_ptr = len(nums1)-1
        while r_ptr >= 0 and f_ptr >= 0 and s_ptr >= 0:
            if nums1[f_ptr] >= nums2[s_ptr]:
                nums1[r_ptr] = nums1[f_ptr]
                f_ptr -= 1
            else:
                nums1[r_ptr] = nums2[s_ptr]
                s_ptr -= 1
            r_ptr -= 1
        while r_ptr >= 0 and s_ptr >= 0:
            nums1[r_ptr] = nums2[s_ptr]
            r_ptr -= 1
            s_ptr -= 1

 

标签:nums1,88,数组,排序,ptr,nums2
From: https://www.cnblogs.com/bjfu-vth/p/16731734.html

相关文章

  • 归并排序
    归并排序思想:将数组不断划分,只到不可再分为止(划分阶段仅划分,不做其他任何处理);再讲划分后的数组进行排序合并。代码实现:importjava.util.Arrays;publicclassMer......
  • 2021杭电多校1 J (普通莫队 树状数组)
    题意:给出1e5个二维平面上的坐标点0<=(x,y)<=1e5,1e5个询问,每次问x0,y0到x1,y1的矩阵中有多少y值不同的坐标点。思路:操作只有询问,不强制在线,数据范围1e5,就差把莫......
  • day3 栈+数组实现链表翻转
    只给头节点,可利用其线性特征,利用head->next遍历链表,将元素入栈;利用栈先进后出的特征,元素出栈保存到辅助vector中,返回vector;函数push_back():将元素放入数组最后一个元......
  • 数组使用
    数组使用数组的基本使用:packagecharpter4;​publicclassArrayDemo2{  publicstaticvoidmain(String[]args){    int[]arrays={1,2,3,4,5}; ......
  • 常用的函数式接口_Supplier接口和常用的函数式接口_Supplier接口练习_求数组元素最大
    常用的函数式接口_Supplier接口:常用函数式接口:JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在java.util.function包中被提供下面是最简单的几个......
  • R语言:对同时包含字母和数字的列进行排序(order columns containing numbers and letter
    原始数据如下所示:现在想对第一列和第二列进行排序,得到如下结果:则可以使用代码:sort=ori[order(as.numeric(sub("\\chr+","",ori$V1)),ori$V2),]......
  • 数组基础
    数组基础数组是相同类型数据的有序集合。数组的声明与定义:packagecharpter4;​publicclassShuZu{  publicstaticvoidmain(String[]args){    //变......
  • 代码随想录第六天| 242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之
    什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。第一题242.有效的字母异位词给定两个字符串s和t,编写一个函数来判断t......
  • C++ 数组指针累加后的偏移量
    typedefstruct_MyStruct{ inta; intb; intc; _MyStruct(){a=0;b=0;c=0;}}MyStruct;intmain(){#if1 MyStruct*st[3]; //数组指针 MyStruct......
  • 12. NumPy相关数组操作
    1.前言NumPy中包含了一些处理数组的常用方法,大致可分为以下几类:数组变维操作数组转置操作修改数组维度操作连接与分割数组操作下面分别对它们进行介绍。2.数组......