Fibonacci Number LeetCode Həlli

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Çiy kərpic Amazon alma Bloomberg eBay Facebook Goldman Sachs google Infosys JPMorgan Riyaziyyat microsoft Nvidia Kahin SAP Über VMware Zillow
ZoomBaxılıb 41

Problem bəyanat

Fibonacci Number LeetCode Solution – “Fibonacci Number” bildirir ki, The Fibonacci nömrələri, ümumiyyətlə işarədir F(n) adlanan ardıcıllıq yaradır Fibonacci ardıcıllığı, elə ki, hər bir ədəd özündən əvvəlki iki ədədin cəmi olsun 0 və 1. Yəni

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

Verilmişdir n, hesablayın F(n).

Fibonacci Number LeetCode Həlli

Misal 1:

Input:

 n = 2

Çıxış:

 1

Explanation:

 F(2) = F(1) + F(0) = 1 + 0 = 1.

Misal 2:

Input:

 n = 3

Çıxış:

 2

Explanation:

 F(3) = F(2) + F(1) = 1 + 1 = 2.

Misal 3:

Input:

 n = 4

Çıxış:

 3

Explanation:

 F(4) = F(3) + F(2) = 2 + 1 = 3.

Yanaşma

Idea:

Əsas müşahidə ondan ibarətdir ki, hər bir F(i) F(i-1) və F(i-2) cəmindən asılıdır. Beləliklə, biz ilkin dəyəri saxlayacaq iki dəyişən götürə bilərik, sonra nəticəni əldə etmək üçün N-ə qədər təkrar edəcəyik.

izahat

  • N==0: 0 qaytarın
  • N==1: 1 qaytarın
  • defolt: qaytarmaq fib(N-1) + fib(N-2)

haqqında danışaq ikinci yanaşma:

[34,55,89] ardıcıllığını nəzərə alsaq, a naxış yəni hər hansı iki ardıcıl termini bölsək bölmə -ə yaxın eyni ədədlə nəticələnir 1.618 deyilən qızıl nisbət. Həqiqətən də bunu etmək üçün düsturumuz var! çağırdı Binet düsturu.

Yaxşı? bu qızıldan necə istifadə edə bilərik! 34 dır,-dir,-dur,-dür 9th Termini tapsaq pow(golden,Nth term)/sqrt(5) əlavə olunur ilə a ətrafında funksiyası ilə N-ci müddətli dəyəri alacağıq O(1) zaman və məkan!

Kodu

Fibonacci nömrəsinin C++ kodu

class Solution {
public:
    int fib(int n) {
        if(n==0)
            return 0;
        if (n==1)
            return 1;
        int a=0,b=1,c;
        for(int i=1;i<n;i++)
        {
            c=a+b;
            a=b;
            b=c;
        }
        return c;
        
    }
};

Fibonacci sayının JAVA proqramı

class Solution {
    public int fib(int n) {
        if(n==0)
            return 0;
        if (n==1)
            return 1;
        int a=0,b=1,c=0;
        
        for(int i=1;i<n;i++)
        {
            c=a+b;
            a=b;
            b=c;
        }
        return c;
        
    }
}

Fibonacci Number LeetCode Həlli üçün Mürəkkəblik Təhlili

Zamanın mürəkkəbliyi

O (N)

Kosmik Mürəkkəblik

O (1)

Translate »