思路:
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
总结:
排序+ 贪心