scala - Complexity estimation for simple recursive algorithm -


i wrote code on scala. , want estimate time , memory complexity.

problem statement

given positive integer n, find least number of perfect square numbers (for example, 1, 4, 9, 16, ...) sum n.

for example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.

my code

def numsquares(n: int): int = {   import java.lang.math._    def traverse(n: int, ns: int): int = {     val max = ((num: int) => {       val sq = sqrt(num)       // perfect square!       if (sq == floor(sq))         num.toint       else         sq.toint * sq.toint     })(n)      if (n == max)       ns + 1     else       traverse(n - max, ns + 1)   }    traverse(n, 0) } 

i use here recursion solution. imho time complexity o(n), because need traverse on sequence of numbers using recursion. right? have missed anything?


Comments

Popular posts from this blog

1111. appearing after print sequence - php -

java - WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/board/] in DispatcherServlet with name 'appServlet' -

node.js - Express and Redis - If session exists for this user, don't allow access -