319. Bulb Switcher
Есть n лампочек, которые изначально выключены. Сначала вы включаете все лампочки, затем выключаете каждую вторую лампочку.
На третьем раунде вы переключаете каждую третью лампочку (включаете, если она выключена, или выключаете, если она включена). На i-ом раунде вы переключаете каждую i-ую лампочку. На n-ом раунде вы переключаете только последнюю лампочку.
return количество лампочек, которые будут включены после n раундов.
Ejemplo
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# solución
coincidente/originalpublic class Solution {
public int BulbSwitch(int n) {
return (int) Math.Sqrt(n);
}
}
C++ solución
borrador automático, revisar antes de enviar#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 solución
coincidente/originalclass Solution {
public int bulbSwitch(int n) {
return (int) Math.sqrt(n);
}
}
JavaScript solución
coincidente/originalvar bulbSwitch = function(n) {
return Math.floor(Math.sqrt(n));
};
Python solución
coincidente/originalclass Solution:
def bulbSwitch(self, n: int) -> int:
return int(n ** 0.5)
Go solución
coincidente/originalimport "math"
func bulbSwitch(n int) int {
return int(math.Sqrt(float64(n)))
}
Algorithm
Инициализация
Лампочка остается включенной, если она переключалась нечетное количество раз. Лампочка будет переключаться на каждом делителе её номера.
Definición состояния лампочки
Лампочка останется включенной только в том случае, если у нее нечетное количество делителей, что возможно только для квадратных чисел.
Подсчет включенных лампочек
Количество лампочек, которые будут включены после n раундов.
😎
Vacantes para esta tarea
Se muestran vacantes activas con etiquetas coincidentes.