1. 程式人生 > >leetcode 779. K-th Symbol in Grammar ---回溯

leetcode 779. K-th Symbol in Grammar ---回溯

cpp 學習 blog sym symbol ram ans gpo 明顯

寒假我完全廢了,每天玩玩玩,吃吃吃,無力自拔

我要學習,我愛學習,學習,學習,學習。。。。

題解:

非常簡單明顯的回溯遞歸題目,當n=1的時候,很明顯返回0,當n>1的時候,根據n-1步和在n步的值,判斷返回0還是1,

如果在n-1步是0,在n步的位置是在偶數位置,就返回0,否則返回1

如果在n-1步是1,在n步的位置是在偶數位置,就返回1,否則返回0

int kthGrammar(int N, int K) {
    if(N==1) return 0;
    int ans=kthGrammar(N-1,(K+1)/2);
    if(ans==0)
    {
        if(K%2==1) return 0;
        else return 1;
    }
    else
    {
        if(K%2==1) return 1;
        else return 0;
    }
}

  

class Solution(object):
    def kthGrammar(self, N, K):
        """
        :type N: int
        :type K: int
        :rtype: int
        """
        if N==1:
            return 0;
        ans=self.kthGrammar(N-1,(K+1)/2);
        if ans==0:
            if K%2==1:
                return 0;
            else:
                return 1;
        else:
            if K%2==1:
                return 1;
            else:
                return 0;

  

leetcode 779. K-th Symbol in Grammar ---回溯