leetcode_合并两个有序数组

必须从后往前改,因为不然的话会被覆盖的很麻烦

 1 class Solution {
 2     public void merge(int[] nums1, int m, int[] nums2, int n)       {
 3         int i=m-1;
 4         int j=n-1;
 5         int k=m+n-1;
 6         while(i>=0&&j>=0){
 7             if(nums1[i]>=nums2[j]){
 8                 nums1[k--]=nums1[i];
 9                 i--;
10             }
11             else{
12                 nums1[k--]=nums2[j];
13                 j--;
14             }
15         }
16         
17         if(i>=0){
18             for(int index=i;index>=0;index--)
19                 nums1[k--]=nums1[index];
20         }
21         if(j>=0){
22             for(int index=j;index>=0;index--)
23                 nums1[k--]=nums2[index];
24         }
25         
26      }
27 }

 

posted @ 2019-09-22 21:40  chyblogs  阅读(167)  评论(0)    收藏  举报