https://leetcode-cn.com/probl...从题意就知道了解题思路。除了第一个格子,机器人可以走到所有可能的地方每个格子至少有这两种方法中的一种:向下伸,向右伸。也就是说:如果一个格子是可达的,那么我们肯定可以从他左边的格子往右走一步,或者从他上面的格子往下走一步。这样一来,也不排除从下方或左侧走。但这意味着我们只需要往下看,向右看。代码设置了ln标志数组,ln[i]标志机器人能否到达上一行的位置i。初始化为全False标志f,记录当前行是否有可达网格。如果当前行没有可达的格子,那么不管后面的行,肯定是达不到的。markf2记录是否可以到达紧邻网格左侧的网格。f2被初始化为False。这样的格子是可以到达的,有两个条件:值满足这个规则,它上面的格子或者左边的格子是可达的。代码类解决方案:defmovingCount(self,m:int,n:int,k:int)->int:cnt=0defgetv(n):v=0forchinlist(str(n)):v+=int(ch)returnvln=[Falsefor_inrange(m)]foriinrange(n):v=getv(i)f=Falsef2=Falsenln=[Falsefor_inrange(m)]ifi==0:f2=Trueforjinrange(m):ifgetv(j)+v<=kand(f2orln[j]):f=Truef2=Truenln[j]=Truecnt+=1else:f2=Falseln=nlnifnotf:breakreturncnt欢迎来到我的博客:https://codeplot.top/我的博客分类:https://codeplot.top/categories/%E5%88%B7%E9%A2%98/
