319. Bulb Switcher

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

Есть n лампочек, которые изначально выключены. Сначала вы включаете все лампочки, затем выключаете каждую вторую лампочку.

На третьем раунде вы переключаете каждую третью лампочку (включаете, если она выключена, или выключаете, если она включена). На i-ом раунде вы переключаете каждую i-ую лампочку. На n-ом раунде вы переключаете только последнюю лампочку.

return количество лампочек, которые будут включены после n раундов.

Input: n = 3

Output: 1

Explanation: At first, the three bulbs are [off, off, off].

After the first round, the three bulbs are [on, on, on].

After the second round, the three bulbs are [on, off, on].

After the third round, the three bulbs are [on, off, off].

So you should return 1 because there is only one bulb is on.

Explanation: The two words can be "abcw", "xtfn".

C# 解法

照合済み/オリジナル
public class Solution {
    public int BulbSwitch(int n) {
        return (int) Math.Sqrt(n);
    }
}

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 int BulbSwitch(int n) {
        return (int) Math.Sqrt(n);
    }
}

Java 解法

照合済み/オリジナル
class Solution {
    public int bulbSwitch(int n) {
        return (int) Math.sqrt(n);
    }
}

JavaScript 解法

照合済み/オリジナル
var bulbSwitch = function(n) {
    return Math.floor(Math.sqrt(n));
};

Python 解法

照合済み/オリジナル
class Solution:
    def bulbSwitch(self, n: int) -> int:
        return int(n ** 0.5)

Go 解法

照合済み/オリジナル
import "math"

func bulbSwitch(n int) int {
    return int(math.Sqrt(float64(n)))
}

Algorithm

Инициализация

Лампочка остается включенной, если она переключалась нечетное количество раз. Лампочка будет переключаться на каждом делителе её номера.

定義 состояния лампочки

Лампочка останется включенной только в том случае, если у нее нечетное количество делителей, что возможно только для квадратных чисел.

Подсчет включенных лампочек

Количество лампочек, которые будут включены после n раундов.

😎

Vacancies for this task

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

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