0
点赞
收藏
分享

微信扫一扫

leetcode:1414. 和为 K 的最少斐波那契数字数目

ZGtheGreat 2022-02-03 阅读 79

在这里插入图片描述
思路:
1.找到小于等于k的fib然后从大到小排
2.贪心求解

src:

class Solution:
    def findMinFibonacciNumbers(self, k: int) -> int:
        # 排序 + 贪心
        myFib = []
        a = 1
        b = 1
        while a <= k:
            t = a
            a = b
            b = t + b
            myFib.append(t)
        
        ans = 0
        now = 0
        myFib.reverse()
        print(myFib)

        while k > 0:
            ans += (k // myFib[now])
            k = k % myFib[now]
            now += 1
        
        return ans

总结:
排序+ 贪心

举报

相关推荐

0 条评论