Advertisement
Guest User

numSquares Python

a guest
Oct 14th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. from math import sqrt
  2. import sys
  3.  
  4. class Solution:
  5.     def numSquares(self, n: int) -> int:
  6.         nsqrt = int(sqrt(n))
  7.         perfectSquares = [0]+[x**2 for x in range(1,nsqrt+1)]
  8.         nps = len(perfectSquares)
  9.         m = [[0]*(nps) for _ in range(n+1)]
  10.         for i in range(n+1):
  11.             m[i][0] = sys.maxsize
  12.         for i in range(1,n+1):
  13.             for j in range(1,nps):
  14.                 curPerfectSquare = perfectSquares[j]
  15.                 if curPerfectSquare > i:
  16.                     m[i][j] = m[i][j-1]
  17.                 else:
  18.                     m[i][j] = min(m[i][j-1],1+m[i-curPerfectSquare][j])
  19.         return m[n][nps-1]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement