码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-面试题13-机器人的运动范围

时间:2020-04-09 00:29:48      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:solution   mamicode   inf   递推   dfs   info   while   机器   empty   

 题目描述:

技术图片

 

 方法一:dfs/bfs

class Solution:
    def movingCount(self, m: int, n: int, k: int) -> int:
        def digitsum(n):
            ans = 0
            while n:
                ans += n %10
                n//=10
            return ans
        from queue import Queue
        q = Queue()
        q.put((0,0))
        s = set()
        while not q.empty():
            x,y = q.get()
            if (x,y) not in s and 0 <=x <m and 0<=y<n and digitsum(x)+digitsum(y) <=k:
                s.add((x,y))
                for nx,ny in [(x+1,y),(x,y+1)]:
                    q.put((nx,ny))
        return len(s)

方法二:递推

class Solution:
    def movingCount(self, m: int, n: int, k: int) -> int:
        def digitsum(n):
            ans = 0
            while n:
                ans += n %10
                n//=10
            return ans
        vis = set([(0,0)])
        for i in range(m):
            for j in range(n):
                if ((i-1,j) in vis or (i,j-1) in vis) and digitsum(i) + digitsum(j) <= k:
                    vis.add((i,j))
        return len(vis)

 

leetcode-面试题13-机器人的运动范围

标签:solution   mamicode   inf   递推   dfs   info   while   机器   empty   

原文地址:https://www.cnblogs.com/oldby/p/12663843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!