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

机器人的运动范围

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

int movingCount(int threshold, int rows, int cols) {
    // 计数器
    int count = 0;

    // 记录某坐标能否到达的标记
    vector<vector<int>> flags;

    for(int  i = 0; i < rows; i++) {

        // 计算行号的 threshold
        int ts_r =  i/10 + i%10;

        //定义当前行的flags
        vector<int> line;

        for(int j = 0; j < cols; j++) {

            //当前坐标的 threshold
            int ts = ts_r + j/10 + j%10;

            // 1, ts <= threshold 是可达的必要条件
            // 2, [0, 0] 为 可达的 初始条件
            // 3, [i-1, j] 可达 或 [i, j-1] 可达, 为[i, j] 可达的必要条件
            if (ts <= threshold && ((i==0&&j==0) || (i >0 && flags[i-1][j] == 1) || (j > 0 && line[j - 1] == 1))) {
                count++;
                line.push_back(1);
            } else {
                line.push_back(0);
            }
        }
        flags.push_back(line);
    }
    return count;
}

全部评论

相关推荐

怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
07-01 13:37
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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