尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 298
已运行时间: 991
目录
  1. ts实现
  2. java 实现
  3. C++实现

尼采般地抒情

尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 298
已运行时间: 991

ts实现

function fib(n: number): number {

if (n <= 1) return n
return fib(n - 1) + fib(n - 2)
}

java 实现

class Solution {
// TODO: for 循环实现
public int fib(int N) {
if (N <= 1) return N;
int first = 0;
int second = 1;
for (int i = 0; i < N - 1; i++) {
int sum = first + second;
first = second;
second = sum;
}
return second;
}
// // TODO: 递归实现 O(2^n)
// public int fib1(int n) {
// if (n <= 1) return n;
// return fib1(n - 1) + fib1(n - 2);
// }
// // TODO: 首尾实现
// public int fib3(int n) {
// if (n <= 1) return n;
// int first = 0;
// int second = 1;
// while (n-- > 1) {
// second += first;
// first = second - first;
// }
// return second;
// }
}

C++实现

// 递归:O(2^n)
public static int fib1(int n) {
if (n <= 1) return n;
return fib1(n - 1) + fib1(n - 2);
}

// for 循环:O(n)
public static int fib2(int n) {
if (n <= 1) return n;
int first = 0;
int second = 1;
for (int i = 0; i < n - 1; i++) {
int sum = first + second;
first = second;
second = sum;
}
return second;
}
// 首尾法
public static int fib3(int n) {
if (n <= 1) return n;

    int first = 0;
    int second = 1;
    while (n-- > 1) {
        second += first;
        first = second - first;
    }
    return second;

}
// 特征方程解法:O(1)
public static int fib4(int n) {
double c = Math.sqrt(5);
return (int) (Math.pow((1+c) / 2, n) - Math.pow((1-c) / 2, c));
}

评论区

Twikoo giscus