题目:
思路:
①暴力法:生成每一行的数组,按索引位找值并输出。缺点:内存浪费
②递归(找规律):除第一行外,每一行的前半部分是上一行,后半部分是上一行的反转
代码:
class Solution {
public int kthGrammar(int N, int K) {
return helper(N, K, 0);
}
public int helper(int N,int K,int flag){
if(N == 1)
return flag;
int half = 1 << N-2;//上一层的一半
if(K <= half)//这里的等于号别忘了
return helper(N-1, K, flag);
else
return helper(N-1, K-half, 1-flag);//后半段是上一层的反转
}
}
复杂度分析:?待确定
①时间复杂度:O(n)
②空间复杂度:O(n)