トピック:
彼はデッキのカードを購入し、実際には二つの王、二つの小さな王は(デッキが^ _ ^もともと54だった)が持っていることがわかったので、LL特に良い気分今日、...彼はランダムに5から引き出されますそれを得ることができた場合CECE自身の幸運を望んでいたブランド、あなたがまっすぐに取得することができることができるかどうか、彼はちょっと、スポーツ宝くじを買うことにしました!!「レッドA、スペードの3、王、王、四角片5」、「ああ、私の神!」ストレート..... LLが幸せではない、彼は思った、エイミーのように見ることができます\決定任意の数、及びA 1とみなし、Jは11、Q 12、K 13です。5枚のカード上の「1,2,3,4,5」(それぞれ4として見キングサイズと2、)、「だからラッキー!」になることができます。LLはスポーツ宝くじの友人を買うことにしました。今、私はカードのこの作品を使用するように依頼する上記の手順をシミュレートし、カードが真の出力にまっすぐに構成することができるならば、その後、どのようにLLの運を教え、それ以外の場合は、出力はfalseになります。便宜上、あなたは0であるキングサイズと考えることができます。
アイデア:
カジュアル上記の特定の情報、0-13、合計14桁の作業、0は判定が連続直線ではない、その後、5つの数字を入力し、任意の数のサービスを提供してもよいです。
それでは、どのようにそれを分析していますか?
明らかに0は任意の要素として機能することができます。ゼロの数は、それがわずか4までです。
明らかに、従来の一般的な条件決意配列に加えて:配列の長さは5、数値配列の境界(0-13しない間)、偽が戻されません。
明らかに、0以外を繰り返すことができ、他の要素は、リターン偽繰り返します。
他の要素が繰り返されていない場合、最大値MAX分<= 4を減算することによって、非ゼロ非ゼロの最小値。
それはなぜでしょうか?最初のため、最大4つの0を繰り返し、第二に、もし最大値を減算することによって、非ゼロ非ゼロ最小値最大最小> = 5;その後間の最大と最小の命令少なくとも四つの要素。そして、このような条件の下で、0要素せいぜい3、明らかにストレート構成するものではありませ
ていないいくつかの簡単なコードは次のよう:
1 クラスソリューション{ 2 公共: 3。 BOOL IsContinuous(ベクトル< INT > 番号){ 4。 // キングサイズ0(4 0)、1-13から残りの(4つのすべて); 5。 IF(numbers.size( !)= 5)// falseに、配列の長さではない5戻る 。6 リターン falseに、 図7 のために(INT I = 0 ; I <numbers.size(); I ++ ) 8。 IF(番号[I] < 0 ||番号[ I]> 13です)// 間隔要件を満たしていない値は、falseに戻りますの 。9 リターン falseに、 10 ソート(numbers.begin()、numbers.end()); // ソート 11。 ための(INT I = 0 ; I <numbers.size() - 1は、I ++ ) 12は 、{ 13は IF(番号[I] == 0 ) 14は、 続行、 15 IF(番号[I] ==番号[I + 1 ])// 0以外が重複要素にすることはできません 16 リターン falseに; 17 } 18である ため(INT Iは= 0 ; I <数字。サイズ(); I ++) 。19 { 20は IF(番号[I]が!= 0 ) 21は 、{ 22は IF(番号[numbers.size( - )。1 ] -numbers [I]> = 5)// 。MAXVALUE-MINVALUE> = 5が返さflase(なぜならソート後) 23は、 リターン falseに、 24 他 25 リターン trueに、 26である } 27 } 28 29 30 } 31は }。