5373 和為 K 的最少斐波那契數字數目

2021-10-05 05:42:27 字數 1007 閱讀 4588

解題思路

解題思路(他人)

給你數字 k ,請你返回和為 k 的斐波那契數字的最少數目,其中,每個斐波那契數字都可以被使用多次。

斐波那契數字定義為:

f1 = 1

f2 = 1

fn = fn-1 + fn-2 , 其中 n > 2 。

資料保證對於給定的 k ,一定能找到可行解。

示例 1:

輸入:k = 7

輸出:2

解釋:斐波那契數字為:1,1,2,3,5,8,13,……

對於 k = 7 ,我們可以得到 2 + 5 = 7 。

示例 2:
輸入:k = 10

輸出:2

解釋:對於 k = 10 ,我們可以得到 2 + 8 = 10 。

按照動態規劃的思路,

1)首先是找到所有小於等於 k 的 斐波那契數字 ;

2)按照動態規劃的思想找到最少個數的數字組合即可。(超時)

class solution 

vectornum_t ;

for (int per = 0 ; per <= k ; per ++)

num_t.push_back(per) ;

//cout << num_t.at(k) ;

/**保證=k的數字個數為最少

*動態規劃的思想

*/for (int per_i = 0 ; per_i < num_v.size() ; per_i ++)

}return num_t.at(k) ;

}};

:先算出小於k的fib數列,然後反向遍歷,能取大的盡量取

class solution 

for(i--;i;i--)

}return ans;

}};

本人覺得這兩種解題思路都沒有考慮到,每個斐波那契數字 可以多次使用的前提。之所以是對的,只是測試用例不全面而已。

5373 和為 K 的最少斐波那契數字數目

給你數字 k 請你返回和為 k 的斐波那契數字的最少數目,其中,每個斐波那契數字都可以被使用多次。斐波那契數字定義為 f1 1 f2 1 fn fn 1 fn 2 其中 n 2 資料保證對於給定的 k 一定能找到可行解 1.貪心 class solution def findminfibonacci...

斐波那契數

入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...

斐波那契數

斐波那契數列 fibonacci sequence 簡介 斐波那契數列 fibonacci sequence 又稱 分割 數列 因 數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 ...