网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

剑指offer:机器人的运动范围

题目描述
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?

十载专注成都网站制作,成都企业网站建设,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都企业网站建设,高端网页制作,对酒店设计等多个行业,拥有多年的网站运维经验。

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://bjjierui.cn/article/jchhec.html

其他资讯