45.ジャンプゲームII
ハード
負以外の整数の配列を考えると、あなたは最初に、配列の最初のインデックスに配置されています。
配列の各要素は、その位置で、あなたの最大ジャンプ長さを表しています。
あなたの目標はジャンプの最小数で最後のインデックスに到達することです。
例:
入力:[2,3,1,1,4] 出力:2 説明:最後のインデックスに到達するジャンプの最小数は2である ジャンプ1のインデックス0から1つのステップ、最後のインデックスを次に3つの段階。
注意:
あなたは、常に最後のインデックスに達することができると仮定することができます。
本旨:
主なアイデア以外のコードを書くとき、差は異なる結果を引き起こす可能性があり>> =に注意してください。
する#include <stdio.hに> する#include <iostreamの> する#include < ストリング > の#include <ベクトル> 使用して 名前空間STD。 クラス解決 { パブリック: int型のジャンプ(ベクトル< INT >&NUMS) { int型 RES = 0、R = 0、L = 0、next_r = 0 。 int型時間= nums.size() - 1 。 しながら(R < 回) { ため(int型私はLを=; I <= R; I ++) { next_r = MAX(next_r、NUMS [I] + I)。 } 、L = R + 1 。 R = next_r。 解像度 ++ ; } 戻りRESと、 } }。 INT メイン() { 溶液S。 ベクトル < int型 > V。 v.push_back(2 )。 v.push_back(3 )。 v.push_back(1 )。 v.push_back(1 )。 v.push_back( 4 )。 int型のres = s.jump(V); coutの << RES << てendl; リターン 0 ; }