leetcode-55。ゲームをジャンプ・アレイ

フェイス質問

この質問は理解しやすい、非常にシンプルな直面しています。非負基与え、各要素は、格子とみなすことができます。各要素の値がジャンプすることができ、グリッド電流の数を表し、グリッドかどうか最終的な決意に到達することができます。

サンプル

入力:[ 23、1,1、4 ] 
出力:真の
説明:最後のインデックスに、次いで、1〜3つの手順をインデックス0から1つのステップをジャンプ。
入力:[ 32、1,0,4] 
出力:偽の
説明:あなたはいつもどんなインデックス3に到着しません。その最大
             ジャンプ長さは、それが不可能な最後のインデックスに到達することができた、0です。

アルゴリズム

限り、最終的に到達する経路があるとして、それを説明します。私たちは、限りがあり、フロントとして、背面から前方に見ることができる要素のインデックスに加えて、その要素の値がより大きいターゲット要素インデックス値格子に代わって、前回の目標グリッドからジャンプすることができます。限り、我々は、配列が頭を表しまで、グリッドの前のターゲットグリッドが更新されることを条件に、前方にスライドするから裁判官を満たすために前方に移動すると、通過することができ、そうでない場合は、行き止まりに。

アレイを介してフラッシュバック、アレイは標的テールとして定義され、要素の値は、インデックス値+>が標的決定されますか?ターゲット=インデックス:無治療。

便宜終了、= 0真:?偽決意対象

評価します

時間計算量:O(n)は、プライマリアレイを横断する必要があります。

宇宙複雑:O(1)

ソース

1  クラスソリューション{
 2  公共3      ブール canJump(ベクトル< INT >&NUMS){
 4          INT LEN = nums.size()。
5          あれば(LEN <= 1 6              リターン 7          
8          int型のターゲット= LEN - 1 9          int型 I =標的- 1 ; I> = 0 ; i-- 10          {
 11              であれば(NUMS [I] + I> = ターゲット)
 12                 ターゲット= I;
13          }
 14          
15          リターン目標== 0 16      }
 17 }。

おすすめ

転載: www.cnblogs.com/yocichen/p/10963159.html