標籤:leetcode
88 Merge Sorted Array
連結:https://leetcode.com/problems/merge-sorted-array/
問題描述:
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.
Hide Tags Array Two Pointers
Hide Similar Problems (E) Merge Two Sorted Lists
歸併兩個數組,要注意的是輸入中m和n兩個數字指定了兩個數組中的前m個數字和n個數字有效。這一題也可以用二分法排序。
class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { while(nums1.size()>m) nums1.pop_back(); while(nums2.size()>n) nums2.pop_back(); nums1.insert(nums1.begin(),nums2.begin(),nums2.end()); sort(nums1.begin(),nums1.end()); }};
也可以用歸併排序。
class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { while(nums1.size()>m) nums1.pop_back(); while(nums2.size()>n) nums2.pop_back(); vector<int>::iterator it1=nums1.begin(); vector<int>::iterator it2=nums2.begin(); while(it1!=nums1.end()&&it2!=nums2.end()) if(*it1>=*it2) nums1.insert(it1,*it2++); else it1++; while(it2!=nums2.end()) nums1.push_back(*it2++); }};
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
88Merge Sorted Array