题解 | #机器人的运动范围#

机器人的运动范围

https://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8

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
}

全部评论

相关推荐

12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务