[英]Why doesn't recursion work in leetcode question?
我試圖通過使用遞歸來解決一個簡單的問題。
給定一個非負整數 num,返回將其減少到零的步驟數。 如果當前數字是偶數,則必須將其除以 2,否則必須從中減去 1。
我給出了我的解決方案:
class Solution:
def numberOfSteps(self, num: int) -> int:
if num!=0:
if num%2==0:
return 1+ numberOfSteps(num//2)
else:
return 1+ numberOfSteps(num-1)
else:
return 0
但是我遇到了這個錯誤:
NameError: name 'numberOfSteps' is not defined
return 1+ numberOfSteps(num//2)
Line 5 in numberOfSteps (Solution.py)
ret = Solution().numberOfSteps (param_1)
Line 29 in _driver (Solution.py)
_driver()
Line 40 in <module> (Solution.py)
class Solution:
def numberOfSteps(self, num: int) -> int:
if num!=0:
if num%2==0:
return 1+ self.numberOfSteps(num//2)
else:
return 1+ self.numberOfSteps(num-1)
else:
return 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.