碎碎念
这是一个很棒的题目,也是我所期待遇到的东西。当然,也不排除是我太笨啦。
题干
给予两个数值,第一个k代表会有几阶的数,一阶是0,二阶是把0变成01,三阶是把每个0变成01,每个1变成10,也就是0110
第二个数t代表你要返回的第几个引索数,举例来说k=3 t=1 =>返回1
解题思路
我一开始是笨蛋,想说把所有数值产出来就好了,所以就用了类似递迴的东西一直去生成新的一阶数列
后来请GPT改code的时候,他跟我说看规律就好了
没错 人工智慧直接看规律 从根本搞定这个问题
根据观察我们可以发现位数跟奇偶有关
class Solution: def kthGrammar(self, n: int, k: int) -> int: if n == 1: return 0 # 如果k是偶数 if k % 2 == 0: return 1 - self.kthGrammar(n-1, k//2) # 如果k是奇数 else: return self.kthGrammar(n-1, (k+1)//2)
原来,就这么简单