確立された順序に従って、宛先アレイ(leetcode181週トーナメント)を作成

あなたは2つの整数配列を与えるnumsindexあなたは、次のルールに従って、ターゲット配列を作成する必要があります。

  • ターゲット配列は、target最初は空です。
  • 左から右に順次読み出さnums[i]index[i]で、target上付き文字列index[i]補間された値でnums[i]
  • まで、前の手順を繰り返し、numsそしてindex要素が読むべきではありません。

ターゲットアレイに返却してください。

トピックは、デジタル挿入位置が常にあることを確認してください。

 

例1:

入力: NUMS = [0,1,2,3,4]、インデックス= [0,1,2,2,1]
 出力: [0,4,1,3,2]が
 説明した: 
NUMS対象のインデックスを
0 [ 0] 
11 [0] 
[0、1] 22 
3 2 [0,1,3,2] 
41 [0,4,1,3,2]

例2:

入力: NUMS = [1,2,3,4,0]、インデックス= [0,1,2,3,0]
 出力: [0,1,2,3,4]が
 説明した: 
NUMS対象のインデックスを
1 0 [ 1] 
21 [1] 
[1,2,3] 32 
43 [1,2,3,4] 
0 [0,1,2,3,4]

例3:

入力: NUMS = [1]、インデックス= [0]
 出力: [1]

 

ヒント:

  • 1 <= nums.length, index.length <= 100
  • nums.length == index.length
  • 0 <= nums[i] <= 100
  • 0 <= index[i] <= i

4つの質問、二人はあまりにも料理を通じて、この質問に残業を、実行している第二の道になり、そして、

アイデア:配列要素をシフトした後に挿入

1  INT * createTargetArray(INT * NUMS、INT numsSize、INT *指数、INT indexSize、INT * returnSize)
 2  {
 3      int型 * ターゲット。
4      int型I;
5      
6      目標=(INT *)はmallocはsizeofINT)* indexSize)。
7      のmemset(ターゲット、0 、indexSize)。
8      
9      ための(iは= 0 ; I <indexSize; I ++ 10     {
 11          もし(I == 0 12          {
 13              対象[インデックス[I] = NUMS [I]。
14          }
 15            // 把ターゲット中的数后移
16          {
 17              のためにINT J = indexSize- 1 ; j>は、インデックス[I]; j-- 18              {
 19                  対象[J] =目標[J- 1 ] ;
20              }
 21              対象[インデックス[I] = NUMS [I]。              
22          }
 23      
24     }
 25      
26      * returnSize = indexSize。
27      リターン・ターゲット。
28 }

 

おすすめ

転載: www.cnblogs.com/ZhengLijie/p/12545177.html
おすすめ