剑指offer13. 机器人的运动范围
方法
将问题看作一个树的遍历筛选问题,起始位置为[0,0],可选路径向左,向下遍历
,通过条件坐标的数位和小于<k.
通过类似中序遍历,来遍历所有可能的坐标点,通过条件限定遍历节点
// 判断当前节点是否符合条件
int avaliable(int i, int j,int m,int n, int k)
{int i_n = 0, j_n = 0;while (i != 0){i_n += i % 10;i = i / 10;}while (j != 0){j_n += j % 10;j = j / 10;}if (i_n + j_n <= k)return 1;else{return 0;}
}
// 递归遍历节点
int count_num(int i, int j, int count, int m, int n, int k, int** visited)
{if (i < 0 || j < 0 || i >= m || j >= n||visited[i][j]==true)return count;if (avaliable(i, j,m,n ,k)) //若条件满足,进入节点,并检查向左,向下的坐标{visited[i][j] = true;count++; //当前节点满足,计数加1count = count_num(i, j + 1, count, m, n, k, visited);count = count_num(i + 1, j, count, m, n, k, visited);}return count;
}
//初始化位置,及标记矩阵表示是否visited
int movingCount(int m, int n, int k) {int i = 0, j = 0;int count = 0;int** visited = (int**)malloc(m*sizeof(int*));for (int i = 0; i < m; i++) {visited[i] = (int*)malloc(n*sizeof(int));}return count_num(i, j, count, m, n, k, visited);
}
遇到的问题
- 本地使用malloc函数需要#include<malloc.h>
剑指offer13. 机器人的运动范围相关推荐
- 2021-06-25☞剑指offer13.机器人的运动范围
1.1我的解法 我写成了一个遍历图的所有的算法,写成了遍历图所需的所有步数 以及 1)审题有误:误将坐标和看成两数相加,应该是每个位置上的数字都相加 1.2其他的解法 class Solution { ...
- 剑指Offer13_机器人的运动范围
public class 剑指Offer_13_机器人的运动范围 {private int m;private int n;private int k;private int count;privat ...
- 剑指offer.机器人的运动范围
地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼∼n−1.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格.但是不能进入行坐标和列坐标的数位 ...
- 【LeetCode笔记】剑指 Offer 13-. 机器人的运动范围 (Java、dfs)
文章目录 题目描述 思路 & 代码 二刷 题目描述 注意点:满足数位和大于 k 的格子,不一定可以从 [0, 0] 走到,因此实际上不满足条件 思路 & 代码 考虑到可达性问题,决定用 ...
- 【四重优化,速看】剑指 Offer 13. 机器人的运动范围
立志用最少的代码做最高效的表达 题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不 ...
- 【LeetCode】剑指 Offer 13. 机器人的运动范围
[LeetCode]剑指 Offer 13. 机器人的运动范围 文章目录 [LeetCode]剑指 Offer 13. 机器人的运动范围 package offer;public class Solu ...
- 【有返回值的回溯】剑指offer——面试题67——机器人的运动范围(回溯法)
剑指offer--面试题67:机器人的运动范围(回溯法) Solution1: 此题和66题均是典型的回溯法题目,对比记忆思路! class Solution {public:int movingCo ...
- 剑指 Offer 13. 机器人的运动范围
剑指 Offer 13. 机器人的运动范围 题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上 ...
- LeetCode 剑指Offer 13 机器人的运动范围
LeetCode 剑指Offer 13 机器人的运动范围 题目 解题 解题一:深度优先搜索 解题二:广度优先搜索 解题三:动态规划 题目 解题 深度优先和广度优先解题思路参考: 剑指 Offer 13 ...
最新文章
- 只有本地用户才能安装sql_为何只有安装了新风换气机才能打造好的家居环境?听听厂家怎么说...
- 页面调用系统window打印
- Spring Cloud 学习笔记(2 / 3)
- c语言怎么读取mhx文件内容,C语言重新学习――基础杂类
- 95-30-017-Channel-NioServerSocketChannel
- iOS中的中间人-NSURLProtocol 的原理和使用实例
- 第一章 硬件介绍和环境配置
- List转Map-JDK8实现
- 搜索引擎算法研究(一)
- 怎么做移动APP测试,移动应用测试有哪些?
- python 埋点_网站js埋点
- c语言以字符输出88,C语言88案例完整版
- 2021年制冷与空调设备运行操作考试题及制冷与空调设备运行操作证考试
- 在Java中用正则表达式判断一个字符串是否是数字的方法
- JAVA WEB 入门基础第一天
- 满庭芳国色 高清剪图 桃红 上
- AndroidStudio的Gradle完全教程
- php快速搭建后台,基于thinkphp的后台管理系统模板快速搭建,thinkphp后台模板_PHP教程...
- 大集中系统的个人所得税解决方案
- 朝阳医院2018年销售数据分析