30天Leetcode挑战(7):779 k-th symbol in gramar

碎碎念

这是一个很棒的题目,也是我所期待遇到的东西。当然,也不排除是我太笨啦。

题干

给予两个数值,第一个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)

原来,就这么简单


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章