LeetCode 779 第K个语法符号[递归 找规律] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 779 第K个语法符号[递归 找规律] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
通过二叉树的思想将表展开,首先每个节点的值是由父节点决定的,其次观察可以发现每行奇数位节点的值和父节点相同,那么我们要做的就是找到父节点的值,然后根据当前节点所在行的奇偶性返回值,找父节点通过不断递归实现,代码如下:
class Solution
public:
int kthGrammar(int n, int k)
// 最顶点永远是0
if(n == 1 && k == 1)
return 0;
// 找父节点
int a = kthGrammar(n - 1, (k + 1)/ 2);
int b = a ^ 1;
// 奇数位和父节点相同,否则不同
return (k % 2 == 0) ? b : a;
;
以上是关于LeetCode 779 第K个语法符号[递归 找规律] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 779. K-th Symbol in Grammar ---回溯
[LeetCode] K-th Symbol in Grammar 语法中的第K个符号
[leetcode-779-K-th Symbol in Grammar]