两个数组合并成一个 第一个数组位置刚刚好
且都是按照升序排序
从后面依次比较两个数组,将较大的放在nums1后面
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
//不是从大到小
//将num2合并到num1中 使得 合并之后 依旧是按照非递减顺序
//按递增顺序
int last=m+n-1;
while(n>0){
if(m==0 || nums2[n-1]>=nums1[m-1]){
nums1[last--]=nums2[--n];
}else{
nums1[last--]=nums1[--m];
}
//nums1[last--]=(nums2[n-1]>nums1[m-1])?:nums2[--n]:nums1[--m];
}
/*while(m>0 && n>0){
if(nums1[m-1] <= nums2[n-1]){
nums1[m+n-1]=nums2[n-1];
n--;
}else{
int tem=nums1[m-1];
nums1[m-1]=nums2[n-1];
nums1[m]=tem;
m--;
}
}*/
return;
}
}