279.完全平方数

class Solution(object):
    def numSquares(self, n):
        """
        :type n: int
        :rtype: int
        """
  

        dp = [float('inf')]*(n+1)
        num = int(n**(0.5))+1 # 0.5不能写成1/2,因为在python2中1/2等于0
        dp[0] = 0
        for i in range(1,num):
            for j in range(i*i,n+1):
                dp[j] = min(dp[j],dp[j-i*i]+1)

        return dp[n]

题目链接:279. 完全平方数 - 力扣(LeetCode)

如果使用的是Python3

则可以写成1/2

如下

class Solution:
    def numSquares(self, n: int) -> int:
        num = int(n**(1/2))+1
        dp = [float('inf')] * (n+1)
        dp[0] = 0
        for i in range(1,num):
            for j in range(i*i,n+1):
                dp[j] = min(dp[j],dp[j-i*i]+1)
        return dp[n]        

你可能感兴趣的:(代码随想录打卡,算法,数据结构,leetcode,动态规划,python,蓝桥杯)