leetcode-779:第K个语法符号

简介: leetcode-779:第K个语法符号

题目

题目连接

我们构建了一个包含 n 行( 索引从 1 开始 )的表。首先在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。

例如,对于 n = 3 ,第 1 行是 0 ,第 2 行是 01 ,第3行是 0110 。

给定行数 n 和序数 k,返回第 n 行中第 k 个字符。( k 从索引 1 开始)

示例 1:

输入: n = 1, k = 1
输出: 0
解释: 第一行:0

示例 2:

输入: n = 2, k = 1
输出: 0
解释: 
第一行: 0 
第二行: 01

示例 3:

输入: n = 2, k = 2
输出: 1
解释:
第一行: 0
第二行: 01

解题

方法一:递归

参考链接

如果节点为左子节点,那么和父节点一样,如何节点为右子节点,那么和父节点值相反。

比如n=3,k=3的情况,此时 (3&1)=1,!(3&1)=0,0异或x=x,因此k为奇数的时候,就和父节点的值相等,因此递归去算父节点的值就行了。

class Solution {
public:
    int kthGrammar(int n, int k) {
        if(n==1) return 0;
        return !(k&1)^kthGrammar(n-1,(k+1)/2);
    }
};
相关文章
|
机器学习/深度学习 算法 安全
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
|
Linux
挂载文件系统
文章详细介绍了Linux系统中使用mount命令挂载文件系统的方法和技巧,包括临时挂载、配置文件挂载、使用loop设备、挂载移动介质以及迁移"/home"目录到新分区的案例。
319 1
挂载文件系统
|
网络协议 NoSQL 应用服务中间件
如何在 asyncio 中使用 socket
如何在 asyncio 中使用 socket
241 1
|
关系型数据库 MySQL API
Python管理系统源代码
本文介绍了多种基于Python和相关技术的管理系统源代码,包括学生信息管理、图书管理、ERP、异常管理、考试系统等。提供了64个源代码供下载,适用于不同场景和个人项目需求。下载链接:https://pan.baidu.com/s/1hXPLbKHMpBDhlFVv1kdMxA?pwd=8888,提取码:8888。欢迎使用和支持。
420 3
|
存储 Linux
为什么通过clear_refs可以使进程触发缺页?
为什么通过clear_refs可以使进程触发缺页?
|
Java Docker 容器
Java演进问题之ZGC的优点和缺点如何解决
Java演进问题之ZGC的优点和缺点如何解决
208 1
|
SQL 存储 关系型数据库
SQL安装指南:一步步教你如何安装并配置SQL数据库
展望未来,随着技术的不断进步和应用场景的不断拓展,SQL数据库将继续发挥重要作用。同时,我们也需要不断学习和掌握新的数据库技术和工具,以适应不断变化的市场需求和技术挑战。希望本文能为你提供一个良好的起点,帮助你在SQL数据库的学习和实践之路上取得更大的进步。
|
网络协议 网络安全 数据安全/隐私保护
【渗透】爆破工具Hydra
Hydra是一款强大的工具,可以帮助用户快速地进行密码破解和暴力攻击。如果你看过我之前写的靶机视频,你就会发现,在用大字典时,相对于burp suite,Hydra的表现更为优异,那么我们就来深入了解一下这个爆破神器吧。
505 0
|
存储 缓存 Linux
Linux 系统调用深思:从原理到实战
Linux 系统调用深思:从原理到实战
585 1

热门文章

最新文章