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之路的主要内容,如果未能解决你的问题,请参考以下文章