题目描述

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?

回溯法

class Solution
{public:int movingCount(int threshold, int rows, int cols){bool *flags = new bool[rows * cols];for (int i = 0; i < rows * cols; i++)flags[i] = false;int res = helper(threshold, rows, cols, 0, 0, flags);delete[] flags;return res;}int helper(int threshold, int rows, int cols, int i, int j, bool *flags){if (i >= rows || j >= cols || i < 0 || j < 0 || flags[i * cols + j] == true || getBitSums(i) + getBitSums(j) > threshold)return 0;flags[i * cols + j] = true;return helper(threshold, rows, cols, i + 1, j, flags) + helper(threshold, rows, cols, i - 1, j, flags) + helper(threshold, rows, cols, i, j + 1, flags) + helper(threshold, rows, cols, i, j - 1, flags) + 1;}int getBitSums(int a){int res = 0;while (a > 0){res += a % 10;a /= 10;}return res;}
};

转载于:https://www.cnblogs.com/ruoh3kou/p/10265784.html

[剑指offer] 66. 机器人的运动范围相关推荐

  1. 【LeetCode】剑指 Offer 13. 机器人的运动范围

    [LeetCode]剑指 Offer 13. 机器人的运动范围 文章目录 [LeetCode]剑指 Offer 13. 机器人的运动范围 package offer;public class Solu ...

  2. 剑指 Offer 13. 机器人的运动范围

    剑指 Offer 13. 机器人的运动范围 题目 ​ 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上 ...

  3. LeetCode 剑指Offer 13 机器人的运动范围

    LeetCode 剑指Offer 13 机器人的运动范围 题目 解题 解题一:深度优先搜索 解题二:广度优先搜索 解题三:动态规划 题目 解题 深度优先和广度优先解题思路参考: 剑指 Offer 13 ...

  4. [[EVD]] - 剑指 Offer 13. 机器人的运动范围

    题目分析:[[EVD]] - 剑指 Offer 13. 机器人的运动范围https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-l ...

  5. 【四重优化,速看】剑指 Offer 13. 机器人的运动范围

    立志用最少的代码做最高效的表达 题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不 ...

  6. Leetcode刷题笔记——剑指 Offer 13. 机器人的运动范围(中等)

    文章目录 题目描述 解题思路 方法一:深度优先遍历DFS 复杂度分析 C++代码实现 方法二:广度优先遍历BFS 复杂度分析 C++代码实现 参考连接 题目描述 地上有一个m行n列的方格,从坐标 [0 ...

  7. 剑指offer:机器人的运动范围

    题目描述 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器人能 ...

  8. Leetcode 剑指 Offer 13. 机器人的运动范围 (每日一题 20210906)

    地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入行坐标和列 ...

  9. 剑指 Offer 13. 机器人的运动范围 【重刷】

    文章目录 1.概述 2. 代码 1.概述 题目:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 地上有一个m行 ...

最新文章

  1. OpenCV | OpenCV 图片换底色
  2. JavaCollection
  3. 架构设计之「服务限流」
  4. 隐藏滚动条,保留鼠标滚动效果
  5. Apk文件结构, Dex反编译
  6. php打印输出小于10的数字,PHP 字符串输出 echo、print 与 printf 函数
  7. 一个简单的MVC模式练习
  8. Photoshop图像修饰工具
  9. 如何确认自己的电脑是否可以更新到win11
  10. Element-ui框架Tree树形控件切换高亮显示选中效果
  11. H5常用代码:适配方案5
  12. 如何使用Bootbox?
  13. 小米手机证书信任设置在哪里_通过此设置帮助更快地启动小米手机
  14. Redis数据结构之有序集合对象(zset)
  15. 应用NMOS和晶体三极管作为基本开关管的相关知识
  16. 五大靠谱的婚恋相亲APP详细特点缺点分析!
  17. 【京东】商品评价数据采集+买家评论数据+卖家评论数据采集+行业数据分析+行业数据质检分析
  18. 广告sdk是什么意思?广告SDK分类及用途介绍
  19. 微信运营:自媒体人必须知道的20个自媒体平台
  20. 【树莓派】树莓派TXD、RXD的配置与使用可实现与STM32的通信

热门文章

  1. python实现句子反转
  2. MySQL实习训练1
  3. JavaScript知识(二)
  4. SQL Server 2008 R2:error 26 开启远程连接详解
  5. 2009年12月8号漕宝路电信机房真是电信封的吗?
  6. tomcat下配置ssl
  7. C++ 二叉搜索树的实现
  8. 2引擎帮助文档_ANSA快速入门指南中文帮助文档浅析(上)
  9. 学到了一个一分不亏的地推妙招
  10. 每次发工资条,同事都要随意传看,怎么解决这个问题?