package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param threshold int整型 * @param rows int整型 * @param cols int整型 * @return int整型 */ func movingCount( threshold int , rows int , cols int ) int { dirs:=[][]int{[]int{0,1},[]int{0,-1},[]int{1,0},[]int{-1,0}} vis:=make([][]bool,rows) for i,_:=range vis{ vis[i]=make([]bool,cols) } ans:=0 var dfs func(int,int) dfs=func(i,j int){ if i<0||i>=rows||j<0||j>=cols||vis[i][j]||check(i,j,threshold){ return } vis[i][j]=true ans++ for _,dir:=range dirs{ x,y:=i+dir[0],j+dir[1] dfs(x,y) } } dfs(0,0) return ans } func check(i,j,std int)bool{ cnt:=0 for i>0{ cnt+=i%10 i/=10 } for j>0{ cnt+=j%10 j/=10 } return cnt>std }