题目
思路
很简单的一道题,每一行前面一半总与前一行完全一样,后面一半总与前一行完全相反,于是可以简单的使用递归解题,时间复杂度是O(n),代码如下
class Solution {
public:
int kthGrammar(int n, int k) {
if (k == 1 || n == 1) return 0;
int num = 2 << (n - 2);
if (k > num/2) {
return !(kthGrammar(n-1,k-num/2));
} else {
return kthGrammar(n-1,k);
}
return 0;
}
};
提交