- 分析
这道题是一个递归的题目。
当N==1的时候,返回false;
当K大于2的N-2的方时候,kthGrammar(N, K)的值是由kthGrammar(N, K - 2 的N-2次方)取反得到的;
当K小于2的N-2的方时候,kthGrammar(N, K)的值和kthGrammar(N - 1, K)的值相同。 - 代码
class Solution {
public:
int kthGrammar(int N, int K) {
if(helper(N, K)) return 1;
return 0;
}
bool helper(int N, int K){
if(N == 1) return false;
if(K > pow(2, N - 2)){
return !helper(N , K - pow(2, N -2));
}else{
return helper(N - 1, K);
}
}
};