首页 > 其他分享 >【双指针】LeetCode 88. 合并两个有序数组

【双指针】LeetCode 88. 合并两个有序数组

时间:2023-03-07 15:56:28浏览次数:46  
标签:int pos nums1 -- 88 数组 LeetCode nums2 指针

题目链接

88. 合并两个有序数组

思路

看到题目的第一感觉就是用双指针进行原地合并,但是 nums1 的元素都在数组头部,如果正序合并的话非常容易破坏 nums1 的结构。

nums1 在数组尾部给我们留出了足够的额外空间,这一部分是不怕被破坏的,所以可以从数组尾部开始遍历,逆序合并。

代码

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int i = m - 1;
        int j = n - 1;
        int pos = nums1.length - 1;

        while(i >= 0 && j >= 0){
            if(nums1[i] > nums2[j]){
                nums1[pos] = nums1[i];
                i--;
            }else{
                nums1[pos] = nums2[j];
                j--;
            }
            pos--;
        }
        while(pos >= 0 && j >= 0){
            nums1[pos] = nums2[j];
            pos--;
            j--;
        }
    }
}

标签:int,pos,nums1,--,88,数组,LeetCode,nums2,指针
From: https://www.cnblogs.com/shixuanliu/p/17188347.html

相关文章

  • 【数组】LeetCode 264. 丑数 II
    题目链接264.丑数II思路根据题目中的样例,可以进行拆分\[1,1×2,1×3,2×2,1×5,2×3,2×4,3×3,3×4,3×5\]观察能发现,这些多项式能分成下面三组:\[乘2:......
  • 数组-leetcode-485
    ​​0️⃣python数据结构与算法学习路线​​学习内容:基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…数据结构:字符串(string)、列表(list)、元......
  • 数组-Leetcode-697
    ​​0️⃣python数据结构与算法学习路线​​学习内容:基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…数据结构:字符串(string)、列表(list)、元......
  • LeetCode题分类
    一.数组题目分类题目编号数组的遍历485、495、414、628统计数组中的元素645、697、448、442、41、274数组的改变、移动453、665、283二维数组及滚动数组118、119......
  • 动态规划-leetcode-494
    ​​0️⃣python数据结构与算法学习路线​​学习内容:基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…数据结构:字符串(string)、列表(list)、元......
  • 指针与函数
    指针变量作为函数的参数如果想再函数内部修改外部变量的值,需要将外部变量的地址传递给函数  函数内部想要操作(读或写)外部数组元素,将数组名传递给函数  ......
  • 指针8道笔试题解析
    笔试题1:intmain(){inta[5]={1,2,3,4,5};int*ptr=(int*)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));return0;}//程序的结果是什么?第一......
  • 指针数组和数组指针
    普通数组:intarr[5];//数组arr中存放了5个整型数intintintintintarr[0]arr[1]arr[2]arr[3]arr[4]   指针数组:是一个数组,里面存放的是指针......
  • 【队列】LeetCode 1429. 第一个唯一数字
    题目链接1429.第一个唯一数字给定一系列整数,插入一个队列中,找出队列中第一个唯一整数。实现FirstUnique类:FirstUnique(int[]nums)用数组里的数字初始化队列。in......
  • 【二分查找】LeetCode 4. 寻找两个正序数组的中位数
    题目链接4.寻找两个正序数组的中位数思路分治代码classSolution{publicdoublefindMedianSortedArrays(int[]nums1,int[]nums2){if(nums1.len......