Buttercola: Leetcode: Perfect Squares
Leetcode: Perfect Squares
Given a positive integer n, find the least number of perfect square numbers (for example,
1, 4, 9, 16, ...
) which sum to n. For example, given n =
12
, return 3
because 12 = 4 + 4 + 4
; given n = 13
, return 2
because 13 = 4 + 9
. Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
Understand the problem:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
This is a DP problem.
-- Define dp[n + 1], where dp[i] means the least number of perfect square numbers for integer i.
-- Initialization. dp[0] = 0. dp[i] = Integer.MAX_VALUE since we calculate the min number
-- Transit function, dp[i] = min(dp[i], dp[i - j * j]), where j * j <= i
-- Final state: dp[n]
Read full article from Buttercola: Leetcode: Perfect Squares
No comments:
Post a Comment