前言
新的一年,好好学习。
正文
问题来源
本问题来自leetcode上的779题。
问题描述
在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。
给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)
示例 1:
输入: N = 1, K = 1
输出: 0
输入: N = 2, K = 1
输出: 0
输入: N = 2, K = 2
输出: 1
输入: N = 4, K = 5
输出: 1
解释:
第一行: 0
第二行: 01
第三行: 0110
第四行: 01101001
分析:
func kthGrammar(N int, K int) int {
if 1 == N {
return 0
}
if K % 2 == 0 {
return int(math.Abs(float64(kthGrammar(N-1, (K+1)/2)-1)))
}
return kthGrammar(N-1, (K+1)/2)
}
总结:
勤思考。
结语
不管怎么样好好加油。