279. Perfect Squares
problem description
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.
Example 1:
Example 2:
algorithm thought
类似背包问题。这里是用空间为n的背包装载最少的物品。物品的体积就是正方形的面积。直接用动态规划解题。
解完之后,看discuss发现还有更加神奇的static动态规划。也就是利用static变量只会初始化一次的特点。能够利用之前的值。因为这个题的每次不同的n返回的值是不会变化的。求出n又相当于求出前面所有的值。所以这里可以用static保存前面已求出的值
code
algorithm analysis
本来算法的时间复杂度是O(n²)。但是用了static之后,整体时间从100ms级减到了4ms级
Last updated