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