当前位置:网站首页>机器人的运动范围(DFS)
机器人的运动范围(DFS)
2022-06-28 14:08:00 【华为云】
title: 机器人的运动范围(DFS)
categories: LeetCode
tags:
- DFS
- 每天进步一点点系列
题目
难度 中等
地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?
示例 1:
输入:m = 2, n = 3, k = 1
输出:3示例 2:
输入:m = 3, n = 1, k = 0
输出:1
提示:
1 <= n,m <= 100
0 <= k <= 20
代码:
Java:
class Solution { //结果 int sum =0; public int movingCount(int m, int n, int k) { //初始化一个二维数组表示是否访问过 boolean[][] visited = new boolean[m][n]; dfs(0,0,m,n,k,visited); return sum; } private void dfs(int i,int j,int m,int n,int k,boolean[][] visited){ //判断是否符合条件 if (i < 0 || i >= m || j < 0 || j >= n || visited[i][j] || getSum(i)+getSum(j) > k){ return; } //标记访问过了 visited[i][j] = true; //结果加1 sum++; //深度优先搜索 四个方向 dfs(i-1,j,m,n,k,visited); dfs(i+1,j,m,n,k,visited); dfs(i,j-1,m,n,k,visited); dfs(i,j+1,m,n,k,visited); } //计算数位和 private int getSum(int num){ int sum =0; while(num>0){ sum+=num%10; num/=10; } return sum; }}C++:
class Solution {public: int res = 0;public: int movingCount(int m, int n, int k) { vector<vector<bool>> visited(m, vector<bool>(n, 0)); dfs(0, 0, m, n, k, visited); return res; }public: void dfs(int i, int j, int m, int n, int k, vector<vector<bool>> &visited) { if (i < 0 || i >= m || j < 0 || j >= n || visited[i][j] || getSum(i) + getSum(j) > k) { return; } visited[i][j] = true; res++; dfs(i + 1, j, m, n, k, visited); dfs(i - 1, j, m, n, k, visited); dfs(i, j + 1, m, n, k, visited); dfs(i, j - 1, m, n, k, visited); }public: int getSum(int n) { int sum = 0; while (n) { sum += n % 10; n /= 10; } return sum; }};以上就是机器人的运动范围(DFS)的全部内容
版权声明:
原创博主:牛哄哄的柯南
个人博客链接:https://www.keafmd.top/
看完如果对你有帮助,感谢点击下面的==一键三连==支持!
[哈哈][抱拳]

加油!
共同努力!
Keafmd
都看到这里了,下面的内容你懂得,让我们共同进步!
边栏推荐
- 欧拉恒等式:数学史上的真正完美公式!
- Talk about exception again -- what happens when an exception is thrown?
- Design a stack with getmin function
- Double buffer drawing
- Deveco studio 3.0 editor configuration tips
- Is it safe to open an account on the flush
- CVPR再起争议:IBM中稿论文被指照搬自己承办竞赛第二名的idea
- 做一个墨水屏电子钟,炫酷!
- 增额终身寿险有哪些产品可以买呢?
- Mulan open work license 1.0 open to the public for comments
猜你喜欢

Rslo: self supervised lidar odometer (real time + high precision, icra2022)

China Radio and television 5g package is coming, lower than the three major operators, but not as low as expected

Can your code talk? (upper)

众昂矿业着眼氟化工产业,布局新能源产业链

3. Overall UI architecture of the project

基于MATLAB的混沌数字图像加密技术研究与仿真实现

Connected to rainwater series problems

New drug discovery methods, AstraZeneca team improves ab initio molecular design through course learning

3、项目的整体UI架构

坐拥755万开发者的中国开源,进度几何?
随机推荐
PC Museum - familiar and strange ignorant age
黑苹果安装教程OC引导「建议收藏」
30 sets of JSP website source code collection "suggestions collection"
Regular matching numbers, English and English symbols
Design artificial intelligence products: technical possibility, user acceptability and commercial feasibility
Open source invites you to participate in openinfra days China 2022. Topic collection is in progress ~
Multi dimensional monitoring: the data base of intelligent monitoring
China Radio and television 5g package is coming, lower than the three major operators, but not as low as expected
RAM ROM FLASH的区别
《蛤蟆先生去看心里医生》阅读笔记
《畅玩NAS》家庭 NAS 服务器搭建方案「建议收藏」
DevEco Studio 3.0编辑器配置技巧篇
How to design data visualization platform
木兰开放作品许可证1.0面向社会公开征求意见
2022中式烹调师(高级)试题及在线模拟考试
How fragrant! The most complete list of common shortcut keys for pychar!
Deveco studio 3.0 editor configuration tips
Inftnews | technology giants accelerate their march into Web3 and metauniverse
How to open an account of Huatai Securities? How to handle the account opening is the safest
Notes on the use of official jeecg components (under update...)