面试经典-1-合并两个有序数组

题目

给你两个按 非递减顺序 排列的整数数组 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 {
    // 19.27 - 19.42
    // 成功
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int len1 = nums1.length;
        int len2 = nums2.length;
        int k = len1 - m;
        for (int i = m - 1; i >= 0; i--) {
            nums1[i + k] = nums1[i];
        }

        int p1 = k;
        int p2 = 0;
        int index = 0;
        while (p1 < len1 && p2 < len2) {
            if (nums1[p1] <= nums2[p2]) {
                nums1[index++] = nums1[p1++];
            } else {
                nums1[index++] = nums2[p2++];
            }
        }
        if (p1 == len1) {
            while (p2 < len2) {
                nums1[index++] = nums2[p2++];
            }
        }
    }
}

相关推荐

  1. 面试经典-1-合并有序数组

    2024-03-14 04:24:05       18 阅读
  2. 1.1 面试经典 150 题-合并有序数组

    2024-03-14 04:24:05       33 阅读
  3. 【力扣经典面试题】合并有序数组

    2024-03-14 04:24:05       36 阅读
  4. LeetCode 面试经典150题 88.合并有序数组

    2024-03-14 04:24:05       17 阅读
  5. Leetcode面试经典150_Q88合并有序数组

    2024-03-14 04:24:05       13 阅读
  6. 面试常考150题】1、88合并有序数组

    2024-03-14 04:24:05       36 阅读
  7. 算法:合并有序数组

    2024-03-14 04:24:05       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 04:24:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 04:24:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 04:24:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 04:24:05       18 阅读

热门阅读

  1. 有来团队后台项目-解析3

    2024-03-14 04:24:05       19 阅读
  2. 1688中国站获得工厂档案信息 API

    2024-03-14 04:24:05       23 阅读
  3. 算法训练营day44(补),动态规划12

    2024-03-14 04:24:05       17 阅读
  4. 顺序表的构建(C++)---- 代码 + 注释

    2024-03-14 04:24:05       22 阅读
  5. dao5的Sia Khazamipour确认出席Hack.Summit() 2024

    2024-03-14 04:24:05       20 阅读
  6. SkiROS2:技能型机器人控制平台的探索之旅

    2024-03-14 04:24:05       23 阅读
  7. inversions

    2024-03-14 04:24:05       23 阅读
  8. Lua 如何在Lua中调用C/C++函数

    2024-03-14 04:24:05       20 阅读
  9. Unity3D 动态生成场景管理节点详解

    2024-03-14 04:24:05       21 阅读
  10. Hive函数 EXPLODE 和 POSEXPLODE 使用示例

    2024-03-14 04:24:05       23 阅读