[Easy] 88. Merge Sorted Array
发布日期:2021-05-07 18:21:11 浏览次数:16 分类:精选文章

本文共 954 字,大约阅读时间需要 3 分钟。

88. Merge Sorted Array

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

The number of elements initialized in nums1 and nums2 are m and n respectively.
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.

Example:

Input:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6],       n = 3Output: [1,2,2,3,5,6]

Solution

4 ms 9.4 MB

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

合并有序数列,题目要求使用nums1作为最后输出。

只需要比较nums1,nums2二者中较大的数,从后向前比较。

上一篇:[Easy] 100. Same Tree
下一篇:[Easy] 83. Remove Duplicates from Sorted List

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月26日 07时45分20秒