64,199
社区成员
发帖
与我相关
我的任务
分享一. 打卡,时间越来越不够用了
二. 题目代码以及结果
1. 斐波那契数
递归,0或1为出口
class Solution {
public int fib(int n) {
if(n == 0 || n == 1){
return n;
}
return fib(n-1)+fib(n-2);
}
}

class Solution {
public char findKthBit(int n, int k) {
if(k == 1){
return '0';
}
int mid = 1<<(n-1);
if(k < mid){
return findKthBit(n-1,k);
}else if(k == mid){
return '1';
}else{
k = mid * 2 - k;
return invert(findKthBit(n-1,k));
}
}
public char invert(char x){
return (char)('0'+'1'- x);
}
}

3. 第k个语法符号
class Solution {
public int kthGrammar(int n, int k) {
if (n == 1) return 0;
int mid = 1 << n-2;
if (k <= mid)
return kthGrammar(n-1, k);
return kthGrammar(n-1, k-mid) ^ 1;
}
}
