LeetCode 779. 第K个语法符号
题目描述
思路分析
解法一:位计数(推荐)
核心思路:
- 第 k 个符号只与
k-1的二进制中 1 的个数有关。- 若 1 的个数为偶数则为 0,否则为 1。
n仅限制k范围,不影响结果计算。
复杂度分析:
- 时间复杂度:O(log k),其中 k 表示位置。
- 空间复杂度:O(1)。
class Solution {
public int kthGrammar(int n, int k) {
int ones = Integer.bitCount(k - 1);
return ones % 2;
}
}
import "math/bits"
func kthGrammar(n int, k int) int {
ones := bits.OnesCount(uint(k - 1))
return int(ones % 2)
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 191. 位1的个数 | 简单 | 位运算 |
| 231. 2 的幂 | 简单 | 位运算 |
| 338. 比特位计数 | 简单 | 位运算 |
| 1009. 十进制整数的反码 | 简单 | 位运算 |
| 476. 数字的补数 | 简单 | 位运算 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!