LeetCode 779. 第K个语法符号

题目描述

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. 数字的补数 简单 位运算
本文作者:
本文链接: https://hgnulb.github.io/blog/2022/49967314
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!