【LeetCode】88. Merge Sorted Array 解题记录
问题描述
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
The number of elements initialized in nums1 and nums2 are m and n respectively. You may assume that nums1 has a size equal to m + n such that it has enough space to hold additional elements from nums2.
测试样例
1 | Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 |
1 | Input: nums1 = [1], m = 1, nums2 = [], n = 0 |
说明
1 | nums1.length == m + n |
解题
思路
数组已经排好序,可以采用双指针来求解。
p
指针指向nums1
的末尾,p1, p2
两个指针分别指向两数组的末尾。- 每次将较大的数字复制到
nums1
的p
位置,然后指针向前移动一位。
结束后,若 nums2
有剩余,则将剩余元素添加到正确位置;若 nums1
有剩余,因为结果基于 nums1
构建,因此无需操作剩余元素即在正确位置
补充:
- 双指针
- 时间复杂度
O(m + n)
代码
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 哆啦 C 梦!
评论