【每日一题Day294】LC88合并两个有序数组 | 双指针

简介: 【每日一题Day294】LC88合并两个有序数组 | 双指针

合并两个有序数组【LC88】

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

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

**注意:**最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。

为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n

又一周

这周两个笔试,团子AK,某东A了两题。自己的坚持没有白费,加油冲冲

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

image.png

目录
相关文章
|
6月前
|
算法
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
|
6月前
LeetCode刷题---80. 删除有序数组中的重复项 II(双指针)
LeetCode刷题---80. 删除有序数组中的重复项 II(双指针)
|
6月前
LeetCode刷题---26. 删除有序数组中的重复项(双指针)
LeetCode刷题---26. 删除有序数组中的重复项(双指针)
|
6月前
【每日一题Day259】LC167两数之和 II - 输入有序数组 | 双指针 二分查找
【每日一题Day259】LC167两数之和 II - 输入有序数组 | 双指针 二分查找
58 0
LeetCode: 167. 两数之和 II - 输入有序数组 | 双指针专题
LeetCode: 167. 两数之和 II - 输入有序数组 | 双指针专题
65 1
27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组(双指针遍历)上
27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组(双指针遍历)上
60 1
27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组(双指针遍历)下
27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组(双指针遍历)下
75 0
|
算法 C语言
力扣26 - 删除有序数组中的重复项【快慢指针】
力扣26.删除有序数组中的重复项,带你玩转数组
114 0
力扣26 - 删除有序数组中的重复项【快慢指针】
|
算法 JavaScript 前端开发
167. 两数之和 II - 输入有序数组:JavaScript 双指针解法
167. 两数之和 II - 输入有序数组:JavaScript 双指针解法
117 0
167. 两数之和 II - 输入有序数组:JavaScript 双指针解法