一:解题思路
这个题目的解法利用双指针来进行解答。
二:完整代码示例 (C++版和Java版)
C++版:
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--]; } };
Java版:
class Solution { public void merge(int[] nums1, int m, 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--]; } }
原文:https://www.cnblogs.com/repinkply/p/12462915.html