Java | Leetcode Java题解之第509题斐波那契数

题目:

题解:

java 复制代码
class Solution {
    public int fib(int n) {
        if (n < 2) {
            return n;
        }
        int[][] q = {{1, 1}, {1, 0}};
        int[][] res = pow(q, n - 1);
        return res[0][0];
    }

    public int[][] pow(int[][] a, int n) {
        int[][] ret = {{1, 0}, {0, 1}};
        while (n > 0) {
            if ((n & 1) == 1) {
                ret = multiply(ret, a);
            }
            n >>= 1;
            a = multiply(a, a);
        }
        return ret;
    }

    public int[][] multiply(int[][] a, int[][] b) {
        int[][] c = new int[2][2];
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                c[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j];
            }
        }
        return c;
    }
}
相关推荐
linweidong3 分钟前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
用户93761147581615 分钟前
并发编程三大特性
java·后端
阿在在6 分钟前
Spring 系列(二):加载 BeanDefinition 的几种方式
java·后端·spring
小当家.10514 分钟前
Maven与Gradle完整对比指南:构建工具深度解析
java·gradle·maven
neoooo21 分钟前
🍃Spring Boot 多模块项目中 Parent / BOM / Starter 的正确分工
java·后端·架构
黄金贼贼22 分钟前
2026最新java单元测试json校验器
java·单元测试·json
菜鸟的迷茫22 分钟前
为了防雪崩加了限流,结果入口先挂了
java·后端·架构
荒诞硬汉24 分钟前
数组常见算法
java·数据结构·算法
悟空码字27 分钟前
SpringBoot整合MongoDB,性能提升,优化实践
java·spring boot·后端
1***357736 分钟前
spring loC&DI 详解
java·spring·rpc