あなたは2つの整数配列を与えるnums
とindex
。あなたは、次のルールに従って、ターゲット配列を作成する必要があります。
- ターゲット配列は、
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(はsizeof(INT)* 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 }