package
0.0.0-20230809123828-b071cee2968a
Repository: https://github.com/codehanhan/leetcode-go.git
Documentation: pkg.go.dev

# README

面试题 10.01.合并排序的数组

1. 题目描述

给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。

初始化 A 和 B 的元素数量分别为 mn

示例:

输入:
A = [1,2,3,0,0,0], m = 3
B = [2,5,6],       n = 3

输出: [1,2,2,3,5,6]

说明:

  • A.length == n + m

标签 数组 双指针 排序

2. 解题

双指针法

初始i,j分别指向a,b的最后一个元素, cur指向待插入位置,初始为a[-1]:

  • 如果a[i] > b[j],a[cur] = a[i], i--, cur--
  • 如果a[i] < b[j], a[cur] = b[j], j--, cur--
  • 重复上述两步,直到i<0 || j<0