leetcode Merge Sorted Array 合并有序数组

来源:互联网 发布:w7怎么添加网络打印机 编辑:程序博客网 时间:2024/05/21 06:28

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

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

题意:将两个有序数组合并到第一个数组中,第一个数组空间足够,合并后数组有序。
思路:从数组尾开始遍历,依次插如第一个数组,其中,第一个数组中元素先遍历完的情况单独考虑。

class Solution {public:    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {        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--];    }};
阅读全文
0 0
原创粉丝点击