劍指offer:機器人的運動范圍

題目描述
地上有一個m行和n列的方格。一個機器人從坐標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行坐標和列坐標的數位之和大于k的格子。 例如,當k為18時,機器人能夠進入方格(35,37),因為3+5+3+7 = 18。但是,它不能進入方格(35,38),因為3+5+3+8 = 19。請問該機器人能夠達到多少個格子?

十載專注成都網站制作,成都企業(yè)網站建設,個人網站制作服務,為大家分享網站制作知識、方案,網站設計流程、步驟,成功服務上千家企業(yè)。為您提供網站建設,網站制作,網頁設計及定制高端網站建設服務,專注于成都企業(yè)網站建設,高端網頁制作,對酒店設計等多個行業(yè),擁有多年的網站運維經驗。

class Solution:
    def movingCount(self, threshold, rows, cols):
        # 判斷(row, col)是否可以進入:位置合法且未進入過
        def isValid(row, col):
            if row < 0 or row >= rows or col < 0 or col >= cols:
                return False
            num = 0
            while row > 0:
                num += row % 10
                row //= 10

            while col > 0:
                num += col % 10
                col //= 10

            return num <= threshold

        def helper(row, col):
            cnt = 0  # 對于每個位置,在確認過可以訪問之前先初始化為0
            if isValid(row, col) and not visited[row][col]:
                # 如果(row, col)可以進入,那么將其設為已訪問,然后對四個鄰居進行訪問
                visited[row][col] = True
                cnt = (1 + helper(row + 1, col) + helper(row - 1, col)
                       + helper(row, col + 1) + helper(row, col - 1))

            return cnt

        if threshold < 0:
            return 0
        visited = [[False] * cols for _ in range(rows)]
        return helper(0, 0)

網站題目:劍指offer:機器人的運動范圍
鏈接URL:http://muchs.cn/article42/jchhec.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、網站維護網站設計、建站公司動態(tài)網站、品牌網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設