LeetCode 509. Fibonacci Number

原题链接在这里:https://leetcode.com/problems/fibonacci-number/

题目:

The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,

F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), for N > 1.

Given N, calculate F(N).

Example 1:

Input: 2
Output: 1
Explanation: F(2) = F(1) + F(0) = 1 + 0 = 1.

Example 2:

Input: 3
Output: 2
Explanation: F(3) = F(2) + F(1) = 1 + 1 = 2.

Example 3:

Input: 4
Output: 3
Explanation: F(4) = F(3) + F(2) = 2 + 1 = 3.

Note:

0 ≤ N ≤ 30.

题解:

Having 2 numbers adding up to 3rd number and update 1st and 2nd number.

Time Complexity: O(N).

Space: O(1).

AC Java:

 1 class Solution {
 2     public int fib(int N) {
 3         if(N == 0 || N == 1){
 4             return N;
 5         }
 6         
 7         int first = 0;
 8         int second = 1;
 9         for(int i = 1; i < N; i++){
10             int third = first + second;
11             first = second;
12             second = third;
13         }
14         
15         return second;
16     }
17 }

类似Climbing StairsLength of Longest Fibonacci Subsequence.

跟上Split Array into Fibonacci Sequence.

posted @ 2019-12-30 08:41  Dylan_Java_NYC  阅读(306)  评论(0编辑  收藏  举报