2501。配列内の最長の正方形ストリーク
難易度: 中
トピック: 配列、ハッシュ テーブル、二分探索、動的プログラミング、ソート
整数配列 nums が与えられます。次の場合、num の部分列は square streak と呼ばれます:
最長の正方形ストリークの長さを数値で返します。正方形ストリークがない場合は -1 を返します。
サブシーケンスは、残りの要素の順序を変更せずに、一部の要素を削除するか、要素をまったく削除しないことによって、別の配列から派生できる配列です。
例 1:
例 2:
制約:
ヒント:
解決策:
nums 配列内の最長の正方形のストリークを特定する必要があります。正方形のストリークは、後続の各要素が前の要素の 2 乗であるサブシーケンスであり、少なくとも 2 要素の長さである必要があります。解決策のアプローチは次のとおりです:
クイック ルックアップにセットを使用する:
配列を反復処理します:
トラックの最大長:
最適化:
このソリューションを PHP で実装してみましょう: 2501。配列内の最長の正方形ストリーク
<?php /** * @param Integer[] $nums * @return Integer */ function longestSquareStreak($nums) { ... ... ... /** * go to ./solution.php */ } // Test cases $nums1 = [4, 3, 6, 16, 8, 2]; echo longestSquareStreak($nums1) . "\n"; // Output: 3 $nums2 = [2, 3, 5, 6, 7]; echo longestSquareStreak($nums2) . "\n"; // Output: -1 ?>
このソリューションは、最長の正方形のストリークを効率的に見つけます。有効なストリークが存在しない場合は -1 を返します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が配列内の最長の正方形ストリークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。