LeetCode 1414 和为K的最小斐波那契数字数目[贪心] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1414 和为K的最小斐波那契数字数目[贪心] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
首先,把遍历到K之前的斐波那契数列表示出来,接着从最大的开始,把合适的数与K相减,直到K为0,统计减去的次数,即为最小次数,代码如下:
class Solution
public:
int findMinFibonacciNumbers(int k)
vector<int> count;
count.push_back(1);
int a = 1, b = 0;
for(int i = 0; a + b <= k; i ++)
int c = a + b;
count.push_back(c);
b = a;
a = c;
int ans = 0;
for(int i = count.size() - 1; i >= 0 && k > 0; i --)
if(k - count[i] >= 0)
k -= count[i];
ans ++;
return ans;
;
以上是关于LeetCode 1414 和为K的最小斐波那契数字数目[贪心] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 2000. 反转单词前缀 / 1414. 和为 K 的最少斐波那契数字数目(贪心证明) / 1725. 可以形成最大正方形的矩形数目