まず、配列は--- 2つの注文の配列をマージします

例えばNUM1等の規則配列でnums2のnums1に組み込まれた整数とnums2のnums1二順序付けられた配列を、与えられました。

説明:

mおよびnの要素nums1 nums2の数を初期化します。
あなたはnums2の要素を保存するnums1十分なスペース(M + 1 N以上の空間)をとることができます。
例:

入力:
nums1 = [1,2,3,0,0,0]、M = 3。
nums2 = [2,5,6]、N- = 3。

出力:[1,2,2,3,5,6]

考え

直接一度完成横断要素を入れて戻ってから、最大に

1  クラスソリューション{
 2  公共3      ボイドマージ(ベクトル< INT >&nums1、INT M、ベクトル< INT >&nums2、INT N-){
 4          // 直接最大に
。5          ためINT I = M + N- 1。、I_1 = M- 1、= N- I_2が使用されている1。 ; I> = 0 ; i-- ){
 6              // nums1空の配列、I = N-1、I_1 = 0-1 = -1、I_2 = N-1 
。7              IF(I_1 < 0 ){
 8                  nums1 [I] = nums2 [I_2が使用されている];
 9                 i_2--; // 同nums1 [I] = nums2 [i_2--]。
10                  続け;
11              }
 12              // nums2空数组、N = 0、I = M-1、I_1 = M-1、I_2 = 0-1 = -1 
13              であれば(I_2 < 0 ){
 14                  nums1 [I] = nums1 [I_1 ];
15                  i_1-- 16                  続け;
17              }
 18              であれば(nums1 [I_1]> = nums2 [I_2]){
 19                  nums1 [I] = [I_1] nums1。
20                  i_1-- 21              }
22              {
 23                  nums1 [I] = nums2 [I_2]。
24                  i_2-- ;
25              }
 26              
27          }
 28      }
 29 }。

 

おすすめ

転載: www.cnblogs.com/pacino12134/p/10990933.html