牛客網線上程式設計專題《劍指offer-面試題9》斐波那契數列
題目連結:
題目描述:
解題思路:
(1)遞迴解法
此解法時間複雜度和空間複雜度都很大,我這裡不再給出詳細的程式碼。
(2)動態規劃解法
已經AC的程式碼:
import java.util.Arrays; public class fibonacci { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Fibonacci(7)); } public static int Fibonacci(int n) { if(n == 0) return 0; else if(n == 1 || n == 2) return 1; else { int[] memo = new int[n+1]; Arrays.fill(memo, -1); memo[0] = 0; memo[1] = 1; memo[2] = 1; for(int i=3; i<=n; i++) { if(memo[i] == -1) memo[i] = memo[i-1] + memo[i-2]; } return memo[n]; } } }
相關推薦
劍指offer面試題10:斐波拉契數列
題目描述: 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。n<=39 思路一:遞迴 (通常來說編譯器對尾遞迴是會有化,所以實際效果還是可以的,不過最好是自己實現優化。不能依賴編譯器) 參考部落格:尾遞迴與編
牛客網線上程式設計《劍指Offer》如何通過本地來除錯
一、序言(廢話) 在我準備找工作的時候, 雖然讀的通訊,但是還是想著往比較火的網際網路轉。然後呢,就到牛客網上去刷題。 無非就是這麼幾個線上程式設計專題 ,我主要針對的是【華為機試板塊】,但是找工作嘛,那句俗話
牛客網線上程式設計(劍指offer)---字串替換
題目描述 請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 思路分析: 之前在書上看到這個題,本來這個題的思想時,為了降低替換的複雜度,應該首先遍歷得到替換
劍指offer(7)斐波那契數列
sub write return 16px color 現在 UNC 輸入一個整數 得到 題目描述: 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。n<=39 解題代碼: function Fibonacc
劍指offer——(3)斐波那契數列&&跳臺階&&瘋狂跳臺階進階版&&矩形覆蓋
這兩道題 其實相同。 public class Solution { /* 一看到題目就想到用遞迴,結果雖然能通過,但時間還是太長 */ public int Fibonacci(int target) { return hhh(ta
【劍指offer{7-10}】斐波那契數列、跳臺階、變態跳臺階、矩形覆蓋
斐波那契數列、跳臺階、變態跳臺階、矩形覆蓋題目描述C++程式碼跳臺階題目描述C++程式碼變態跳臺階題目描述C++程式碼矩形覆蓋題目描述C++程式碼 注:思路均是動態規劃,用中間陣列dp存放計算值,如果
《劍指Offer》Java實現-斐波那契數列
題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。 n<=39 思路 很基礎的題目,有遞迴和非遞迴兩種實現思路。 程式碼 遞迴演算法
牛客網線上程式設計專題《劍指offer》(8)跳臺階
題目連線: 題目: 解題思路: 1. 問題分析 設f(n)表示青蛙跳上n級臺階的跳法數。 當只有一個臺階時,即n = 1時,只有1中跳法; 當n = 2時,有2種跳法; 當n = 3 時,有3種跳法; 當n很大時,青蛙在最後一步跳到第n級臺階時,有兩種情況:
牛客網線上程式設計專題《劍指offer-面試題17》合併兩個排序的連結串列
題目連結: 題目描述: 解題思路: (1)方法一: 修改兩個待合併連結串列的引用域,使它們稱為一個有序的連結串列list3。具體思路如下圖所示: 已經AC的程式碼: public class MergeLinkedList { // 定義結點
牛客網線上程式設計專題《劍指offer-面試題18》樹的子結構
題目連結: 題目描述: 解題思路: 本題的解題過程分為兩步: 1)第一步,在樹A中查詢與根結點的值一樣的結點,這實際上就是樹的遍歷。 2)第二步,判斷A樹中以R為根結點的子樹是不是和樹B具有相同的結構。如果結點R的值和樹B的根結點不相同,則以R為根結點的子樹
牛客網線上程式設計專題《劍指offer-面試題39》二叉樹的深度
題目連結: 題目描述: 解題思路: 解法:遞迴的遍歷一棵數的左右子樹。 已經AC的程式碼: public class treeDepth39 { public class Tr
牛客網線上程式設計專題《劍指offer-面試題37》兩個連結串列的第一個公共結點
題目連結: 題目描述: 解題思路: 首先遍歷兩個連結串列得到它們的長度,就能知道哪個連結串列比較長,以及長的連結串列比短的連結串列多幾個結點。在第二次遍歷的時候,在較長的連結串列上先走若干步,接著再同時在兩個連結串列上遍歷,找到的第一個相同的結點就是它們的第
牛客網線上程式設計專題《劍指offer-面試題9:相關題目》矩形覆蓋
題目連結: 題目描述: 解題思路: 2*n的大矩形,和n個2*1的小矩形 其中2*target為大矩陣的大小,target也是小矩形的個數。 有以下幾種情形: target <= 0 大矩形為2*0,直接return 1; target = 1
牛客網線上程式設計專題《劍指offer-面試題38》數字在排序陣列中出現的次數
題目連結: https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2?tpId=13&tqId=11190&tPage=2&rp=2&ru=/ta/coding-interviews&
牛客網線上程式設計專題《劍指offer-面試題9》斐波那契數列
題目連結: 題目描述: 解題思路: (1)遞迴解法 此解法時間複雜度和空間複雜度都很大,我這裡不再給出詳細的程式碼。 (2)動態規劃解法 已經AC的程式碼: import java
劍指offer面試題9:用兩個棧實現佇列(兩個佇列模擬棧)
題目描述: 用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 思路一:有點死腦筋,每次pop後都預設下次是push操作,,,,。233主要是由於沒把握好兩個棧模擬時入隊和出隊的時機。考慮stack1和stack2的大小和入隊出隊的關係即可改
劍指offer 9. 斐波那契數列
輸入一個整數 n ,求斐波那契數列的第 n 項。 假定從0開始,第0項為0。(n<=39) 樣例 輸入整數 n=5 返回 5 滾動陣列 時間複雜度 O
劍指offer-面試題9:斐波那契數列
題目一:寫一個函式,輸入n,求斐波那契(Fabonacci)數列的第n項。斐波那契數列的定義如下: 效率很低的解法:遞迴 long long Fibonacci(unsigned n) { if(n <= 0) return 0;
劍指offer——面試題9:用兩個棧實現隊列
end with using mes 結點 main std delet alt #include "Queue.h" // ====================測試代碼==================== void Test(char actual, cha
牛客網線上程式設計(四):電話號碼分身-python
題目描述 繼MIUI8推出手機分身功能之後,MIUI9計劃推出一個電話號碼分身的功能:首先將電話號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGH