1652年。爆弾を解除してください
難易度: 簡単
トピック: 配列、スライディング ウィンドウ
爆弾を解除する必要があるので、時間は残りわずかです!あなたの情報提供者は、長さ n とキー k の 円形 配列コードを提供します。
コードを復号化するには、すべての数字を置き換える必要があります。すべての数字は同時に置き換えられます。
コードは循環しているため、code[n-1] の次の要素は code[0] であり、code[0] の前の要素は code[n-1] です。
円形配列コードと整数キー k を指定すると、爆弾を解除するための復号化されたコードを返します!
例 1:
例 2:
例 3:
制約:
ヒント:
解決策:
コード配列を反復処理し、k の値に基づいて適切な数値の合計を計算する関数を実装できます。
一般的なアプローチは次のとおりです:
配列の循環的な性質は、配列の境界を超えるインデックスの場合、モジュロ (%) を使用して配列を「ラップアラウンド」できることを意味します。
このソリューションを PHP で実装してみましょう: 1652。爆弾を解除してください
<?php /** * @param Integer[] $code * @param Integer $k * @return Integer[] */ function decrypt($code, $k) { ... ... ... /** * go to ./solution.php */ } // Example Usage $code1 = [5, 7, 1, 4]; $k1 = 3; print_r(decrypt($code1, $k1)); // Output: [12, 10, 16, 13] $code2 = [1, 2, 3, 4]; $k2 = 0; print_r(decrypt($code2, $k2)); // Output: [0, 0, 0, 0] $code3 = [2, 4, 9, 3]; $k3 = -2; print_r(decrypt($code3, $k3)); // Output: [12, 5, 6, 13] ?>
初期化:
k == 0 の処理:
配列の反復処理:
モジュロ算術:
複雑さ:
提供された例は、期待される結果と一致しています。さらに説明や最適化が必要な場合はお知らせください!
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が爆弾を解除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。