LeetCode 779 第K个语法符号

  • 分析
    这道题是一个递归的题目。
    当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);
        }
    }
};

猜你喜欢

转载自blog.csdn.net/xiaoan08133192/article/details/115394058