以leetcode 279题 Perfect Squares为例
题目:
第一种:
在之前加类名:
class Solution(object):
import math
def is_square(self,n):
s=int(math.sqrt(n))
return s*s==n
def numSquares(self, n):
"""
:type n: int
:rtype: int
"""
if Solution.is_square(self,n)==True:
return 1
while n%4==0:
n=n/4
if n%8==7:
return 4
i=1
while i*i<n:
if Solution.is_square(self,n-i*i)==True:
return 2
i+=1
return 3
用时52ms,其中is_square函数的定义和调用参数都有self
第二种,之前加self:
class Solution(object):
import math
def is_square(self,n):
s=int(math.sqrt(n))
return s*s==n
def numSquares(self, n):
"""
:type n: int
:rtype: int
"""
if self.is_square(n)==True:
return 1
while n%4==0:
n=n/4
if n%8==7:
return 4
i=1
while i*i<n:
if self.is_square(n-i*i)==True:
return 2
i+=1
return 3
用时39ms