1. 程式人生 > >給定兩個有序整數數組 nums1 和 nums2,將 nums2 合並到 nums1 中,使得 num1 成為一個有序數組

給定兩個有序整數數組 nums1 和 nums2,將 nums2 合並到 nums1 中,使得 num1 成為一個有序數組

說明 數組下標 整數 足夠 空間 ont -s 空間大小 元素

題目描述:

給定兩個有序整數數組 nums1 和 nums2,將 nums2 合並到 nums1 中,使得 num1 成為一個有序數組。
說明:初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來保存 nums2 中的元素。
示例:
  輸入:
    nums1 = [1,2,3,0,0,0], m = 3
    nums2 = [2,5,6], n = 3
  輸出: [1,2,2,3,5,6]

代碼如下:

public static void merge(int[] nums1,int
m,int[] nums2,int n) { int index1 = 0; int index2 = 0; int index = 0; //新建數組,大小為m+n int[] nums = new int[m+n]; //從首元素開始比較,將較小的放入新數組中,然後較小數的數組下標加1 while(index2<n&&index1<m){ if(nums2[index2]<nums1[index1]){ nums[index
++] = nums2[index2++]; }else { nums[index++] = nums1[index1++]; }; } //檢驗數組元素是否都放入新數組中 while(index1<m){ nums[index++] = nums1[index1++]; } while(index2<n){ nums[index++] = nums2[index2++]; }
//按照題要求將新數組中的值賦給nums1數組 for(int i = 0;i<nums.length;i++){ nums1[i] = nums[i]; } }

給定兩個有序整數數組 nums1 和 nums2,將 nums2 合並到 nums1 中,使得 num1 成為一個有序數組