292. Nim Game

LeetCode easy original: C# #csharp #easy #heap #leetcode #queue
選択した UI 言語に合わせて問題文をロシア語から翻訳します。コードは変更しません。

Вы играете в следующую игру Nim со своим другом:

Изначально на столе лежит куча камней.

Вы и ваш друг поочередно делаете ходы, и вы ходите первым.

Каждый ход игрок, чей ход, будет убирать от 1 до 3 камней из кучи.

Тот, кто убирает последний камень, становится победителем.

given n, количество камней в куче. return true, если вы можете выиграть игру, предполагая, что и вы, и ваш друг играете оптимально, иначе return false.

例:

Input: n = 4

Output: false

Explanation: These are the possible outcomes:

1. You remove 1 stone. Your friend removes 3 stones, including the last stone. Your friend wins.

2. You remove 2 stones. Your friend removes 2 stones, including the last stone. Your friend wins.

3. You remove 3 stones. Your friend removes the last stone. Your friend wins.

In all outcomes, your friend wins.

C# 解法

照合済み/オリジナル
public class Solution {
    public bool CanWinNim(int n) {
        return n % 4 != 0;
    }
}

C++ 解法

自動ドラフト、提出前に確認
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public bool CanWinNim(int n) {
        return n % 4 != 0;
    }
}

Java 解法

照合済み/オリジナル
public class Solution {
    public boolean canWinNim(int n) {
        return n % 4 != 0;
    }
}

JavaScript 解法

照合済み/オリジナル
class Solution {
    canWinNim(n) {
        return n % 4 !== 0;
    }
}

Python 解法

照合済み/オリジナル
class Solution:
    def canWinNim(self, n: int) -> bool:
        return n % 4 != 0

Go 解法

照合済み/オリジナル
package main

func canWinNim(n int) bool {
    return n % 4 != 0
}

Algorithm

Определите базовый случай:

Если количество камней n меньше или равно 3, вы всегда можете выиграть, убрав все камни. В этом случае return true.

Анализ оставшихся камней:

Если количество камней n делится на 4 без остатка (n % 4 == 0), вы не можете выиграть, так как независимо от вашего хода ваш друг всегда сможет оставить вам кратное 4 количество камней. В этом случае return false.

Выигрышная стратегия:

Если количество камней n не кратно 4 (n % 4 != 0), вы можете выиграть, оставляя вашему другу кратное 4 количество камней после вашего хода. В этом случае return true.

😎

Vacancies for this task

有効な求人 with overlapping task tags are 表示.

すべての求人
有効な求人はまだありません。