1823年。循環ゲームの勝者を見つけよう
中
ゲームをプレイしている友達が n 人います。友達は輪になって座っており、時計回りに 1 から n までの番号が付けられています。より正式には、i 番目 の友人から時計回りに移動すると、(i+1) 番目 の友人に 1 <= i < で移動します。 n、n番目の友人から時計回りに移動すると、1番目の友人に移動します。
ゲームのルールは次のとおりです:
友達の数 n と整数 k を指定すると、ゲームの勝者を返します。
例 1:
例 2:
制約:
フォローアップ:
この問題を一定空間の線形時間で解くことができますか?
解決策:
class Solution { /** * @param Integer $n * @param Integer $k * @return Integer */ function findTheWinner($n, $k) { $winner = 0; for ($i = 1; $i <= $n; $i++) { $winner = ($winner + $k) % $i; } return $winner + 1; // +1 because array index starts from 0 } }
連絡先リンク
以上が循環ゲームの勝者を見つけるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。