簡體   English   中英

為什么遞歸在 leetcode 問題中不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM