标签:
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 nums1and nums2 are m and n respectively.
Analyse: Comparing these two arrays from back to front.
Runtime: 4ms
1 class Solution { 2 public: 3 void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { 4 int index = m + n - 1; 5 int index1 = m - 1; 6 int index2 = n - 1; 7 8 while(index1 >= 0 && index2 >= 0){ 9 if(nums1[index1] < nums2[index2]) nums1[index--] = nums2[index2--]; 10 else nums1[index--] = nums1[index1--]; 11 } 12 13 while(index1 >= 0) nums1[index--] = nums1[index1--]; 14 while(index2 >= 0) nums1[index--] = nums2[index2--]; 15 } 16 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/4665296.html