寒假我完全废了,每天玩玩玩,吃吃吃,无力自拔
我要学习,我爱学习,学习,学习,学习。。。。
题解:
非常简单明显的回溯递归题目,当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;