【打卡贴】算法零基础100讲(第79讲)递归入门-二叉递归

Otaku 2022-04-22 21:09:03

一. 打卡,时间越来越不够用了

二. 题目代码以及结果

1. 斐波那契数

递归,0或1为出口

class Solution {
    public int fib(int n) {
        if(n == 0 || n == 1){
            return n;
        }
        return fib(n-1)+fib(n-2);
    }
}

 2. 找出第N个二进制字符串中的第K位

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;
    }
}

 

 

...全文
41 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,199

社区成员

发帖
与我相关
我的任务
社区描述
学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • 芝麻粒儿
  • Amy卜bo皮
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

QQ群:480072171

英雄算法交流 8 群

 

试试用AI创作助手写篇文章吧