关键思路从后往前合并
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int idxm=m-1; int idxn=n-1; int sum=m+n-1; while(idxm>=0&&idxn>=0){ if(nums1[idxm]==nums2[idxn]){ nums1[sum--]=nums1[idxm--]; nums1[sum--]=nums2[idxn--]; }else if(nums1[idxm]>nums2[idxn]){ nums1[sum--]=nums1[idxm--]; }else if(nums1[idxm]<nums2[idxn]){ nums1[sum--]=nums2[idxn--]; } } while(idxn>=0){ nums1[idxn]=nums2[idxn]; idxn--; } } }