【14】 DFS 机器人活动范围 (static插曲)
题目
地上有一个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。请问该机器人能够到达多少个格子?
思路
一开始没想到思路,后来想,不就是有障碍的DFS吗?以后看到这类题,一定要想到DFS!!!:"到达……多少……”
有一个奇怪的地方,这个代码我在IDEA上跑相同的参数,和leetcode跑出来的不一样???
小插曲:
刚写完代码,我在IDEA里跑相同的test都没问题啊,但怎么LT跑不了?????后来发现是我敲代码的时候吧ans声明为static了……
代码:
class Solution {
/
public int ans=0;
//vis初始为false 若为true代表访问且不通过
public int movingCount(int m, int n, int k) {
boolean[][] vis = new boolean[m][n];
if(k==0) return 1;
dfs(k,0,0,m,n,vis);
// for(int i=0;i<m;i++){
// for(int j=0;j<n;j++){
// dfs(k,i,j,m,n,vis);
// }
// }
return ans;
}
public void dfs(int k,int r,int c,int m,int n,boolean[][] vis){
if(r<0||c<0||r>m-1||c>n-1||vis[r][c]) return ;
else if(isGreater(k,r,c)!=true){
return ;
}
else{
vis[r][c]=true;
//正常流程
ans++;
dfs(k,r+1,c,m,n,vis);
dfs(k,r,c+1,m,n,vis);
dfs(k,r-1,c,m,n,vis);
dfs(k,r,c-1,m,n,vis);
}
}
//if k>=(r,c) return true
public boolean isGreater(int k,int r,int c){
int rt = r/10;r=r%10;
int ct =c/10;c=c%10;
return k>=(rt+r+ct+c);
}
}
【14】 DFS 机器人活动范围 (static插曲)的更多相关文章
- 机器人与机器人仿真技术(zz)
http://www.viblue.com/archives/5587.htm 一.机器人简介: 机器人(Robot)是自动执行工作的机器装置.它既可以接受人类指挥,又可以运行预先编排的程序,也可以根 ...
- 【BZOJ】【3205】【APIO2013】机器人robot
斯坦纳树 好神啊……Orz zyf && PoPoQQQ 为啥跟斯坦纳树扯上关系了?我想是因为每个点(robot)都沿着树边汇到根的时候就全部合起来了吧= =这个好像和裸的斯坦纳树不太 ...
- bzoj3205 [Apio2013]机器人
3205: [Apio2013]机器人 Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 953 Solved: 227[Submit][Status] ...
- BZOJ3205/UOJ107 [Apio2013]机器人
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- [APIO2013]机器人
题目描述 VRI(Voltron 机器人学会)的工程师建造了 n 个机器人.任意两个兼容的机 器人站在同一个格子时可以合并为一个复合机器人. 我们把机器人用 1 至 n 编号(n ≤ 9).如果两个机 ...
- java实现第七届蓝桥杯机器人塔
机器人塔 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是: A ...
- Android活动管理工具
ActivityCollector.java import android.app.Activity; import java.util.ArrayList; import java.util.Lis ...
- Python进阶开发之网络编程,socket实现在线聊天机器人
系列文章 √第一章 元类编程,已完成 ; √第二章 网络编程,已完成 ; 本文目录 什么是socket?创建socket客户端创建socket服务端socket工作流程图解socket公共函数汇总实战 ...
- java static关键字的使用
static关键字 通常来说,创建类的时候,是用new创建此类的对象才可以获得,执行new创建对象时数据存储空间才被分配,其方法才被外界调用 有两种情况用new无法解决: 1 ...
随机推荐
- maven依赖报红的一些解决办法
使用IDEA集成maven管理项目依赖时,经常出现更改pom文件后maven依赖列表并未更改,且依赖报红,此时建议检查maven配置文件maven仓库是否下载好jar包,如果未下载好jar包文件夹内会 ...
- 合理使用Android提供的Annotation来提高代码的质量
概述 Java语言提供了Annotation的机制,让描述性的元数据能够和代码共存.通常我们可以利用Annotation,来做一些标志性的说明.然而Annotation必须和相应的解析工具一起才能工作 ...
- C#中删除目录以及目录下文件的方法
场景 C#中根据文件夹路径,将文件夹以及文件夹下文件删除. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电 ...
- A1958
Magic Girl Haze T组 n个点,m条有向含权边,可以选择不超过k条边,将其权值变为0. 问点1到点n的最短距离是多少? 1≤T≤5n≤105m≤2×105k≤10wi≤109 1\leq ...
- CSS隐藏元素的五种方法
1.opacity:0 2.visibility:hidden 3.diaplay:none 4.position:absolute display display属性依照词义真正隐藏元素.将disp ...
- CTF中压缩文件的常见解法
此篇记录两篇记录的比较好的关于压缩文件破解的总结 链接:https://blog.csdn.net/xuqi7/article/details/71437882 https://blog.csdn.n ...
- element-ui的upload组件的clearFiles方法
<template> <div> <el-button @click="clearFiles">重新上传</el-button> & ...
- AcWing 1057. 股票买卖 IV
//f[i,j,1]表示走到第i天已经进行完j次交易并且手中没有股票的所有的购买方式的集合 //f[i,j,0]表示走到第i天并且正在进行第j次交易且手中有货的所有的购买方式的集合 //属性利益最大值 ...
- java中类的构造方法出错点
大家请看下面的这个代码 package ppt_test; public class test1 { public static void main(String args[]) { Foo obj1 ...
- 2.Ubuntu安装 Docker
平台支持 Docker CE 支持多种平台,如下表所示 桌面 平台 架构 Docker Desktop for Mac (macOS) X64 Docker Desktop for Windows ( ...