Power of Two

https://leetcode.com/problems/power-of-twoEasy

Условие

Дано целое число n, верните true, если n является степенью двойки. В противном случае верните false.

Примеры

Input: n = 1

Output: true

Explanation: 2^0 = 1.
Input: n = 16

Output: true

Explanation: 2^4 = 16.
Input: n = 3

Output: false

Решение

fun isPowerOfTwo(n: Int): Boolean {
    // Если n меньше или равно 0, оно не может быть степенью двойки
    if (n <= 0) return false
    // Проверяем, является ли n степенью двойки, используя битовые операции
    return (n and (n - 1)) == 0
}

Временная сложность

O(1), так как мы выполняем фиксированное количество операций.

Пространственная сложность

O(1), так как используем только несколько переменных.