范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

剑指Offer(六十六)机器人的运动范围(Java版)

  描述
  地上有一个 rows 行和 cols 列的方格。坐标从 [0,0] 到 [rows-1,cols-1] 。一个机器人从坐标 [0,0] 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 threshold 的格子。 例如,当 threshold 为 18 时,机器人能够进入方格 [35,37] ,因为 3+5+3+7 = 18。但是,它不能进入方格 [35,38] ,因为 3+5+3+8 = 19 。请问该机器人能够达到多少个格子?
  数据范围: 0 le threshold le 15   threshold  15 ,1 le rows,cols le 100 1  rows , cols  100进阶:空间复杂度 O(nm)  O ( nm ) ,时间复杂度 O(nm)  O ( nm ) 示例1
  输入:1,2,3
  返回值:3  示例2
  输入:0,1,3
  返回值:1  示例3
  输入:10,1,100
  返回值:29
  说明:
  [0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[0,21],[0,22],[0,23],[0,24],[0,25],[0,26],[0,27],[0,28] 这29种,后面的[0,29],[0,30]以及[0,31]等等是无法到达的  示例4
  输入:5,10,10
  返回值:21  第一种解法
  使用dfs(深度优先搜索)来解决,需要注意的一点。得防止重复的点二次计数。代码如下int[][] arr = null; int count = 0; public int firstMovingCount(int threshold, int rows, int cols) {     if(rows < 1 && cols < 1){         return count;     }     if(threshold < 0){         return count;     }     arr = new int[rows][cols];     dsf(threshold,rows,cols,0,0);     return count; }  public void dsf(int threshold, int rows, int cols,int row,int col){     if(row < 0 || row >= rows || col < 0 || col >= cols || arr[row][col] == 1){         return;     }     if(check(row) + check(col) > threshold){         return;     }     arr[row][col] = 1;     count++;     dsf(threshold,rows,cols,row+1,col);     dsf(threshold,rows,cols,row-1,col);     dsf(threshold,rows,cols,row,col+1);     dsf(threshold,rows,cols,row,col-1); }  int check(int num){     int sum = 0;     while (num > 0){         sum += (num % 10);         num = num /10;     }     return sum; }第二种解法
  使用bfs(广度优先搜索)来解决。对于bfs的特性,采用队列来实现是最好的,因为队列是先进先出,离他最近的访问完之后加入到队列中,最先入队的也是最先出队的,代码如下int[][] arr = null; int count = 0;  int check(int num){     int sum = 0;     while (num > 0){         sum += (num % 10);         num = num /10;     }     return sum; }   public int secondMovingCount(int threshold, int rows, int cols) {     if(rows < 1 && cols < 1){         return count;     }     if(threshold < 0){         return count;     }     arr = new int[rows][cols];     Queue queue = new LinkedList<>();     queue.add(new int[]{0,0});     while (!queue.isEmpty()){         int[] poll = queue.poll();         int i = poll[0];         int j = poll[1];         if(i >= rows || j >= cols || arr[i][j] == 1 || (check(i) + check(j) > threshold)){             continue;         }         arr[i][j] = 1;         count++;         queue.add(new int[]{i+1,j});         queue.add(new int[]{i,j+1});     }     return count; }

python中的super是什么?目录技术背景案例测试结果分析总结概要版权声明技术背景python中的super,名为超类,可以简单的理解为执行父类的init函数。由于在python中不论是一对一的继承,还是一子类一个霸占电脑20多年的垃圾哈喽,欢迎来到黑马公社这两天黑马看到了一个新闻,微软再次提醒,IE浏览器将在今年6月正式退役。这让黑马百感交集,从1995年至今,也有27个年头,在互联网的发展史上,已经可以算是一再次爆款K50开售5分钟销量超33万台今天早上10点是Redmi今年的K系列旗舰K50正式首销的时间,再开售18分钟后,Redmi官方公布了该机的销售情况。Redmi红米手机发文称K50旗舰系列首销5分钟,销量超33万数据结构数据结构红黑树和AVL树一样,红黑树也是自平衡二叉搜索树。红黑树同样解决了在特定情况下二叉搜索树会退化成链表的问题。但是红黑树又不像AVL树那样高度平衡,这就让红黑树在插入删除频繁恒大重组,地产有救阿里回购,中概有望表扬下阿里巴巴,上午宣布启动250亿美元回购计划。将股份回购计划的规模由150亿美元扩大至250亿美元,回购将持续至2024年3月底。阿里这一发250亿的王炸,以一己之力托起了整个到底能成功吗?六万人一起帮忙砍拼多多,结果砍到了小数点后六位任何企业想要做大做强,它所需要的核心资源就是来自客户的认可,而获得客户认可最直接的办法便是增加客户人流量。尤其是在现在这样的一个流量时代,谁掌握了流量谁就掌握了无上的财富,观察细微苹果StudioDisplay可在旧款Mac上启用HeySiri财经网科技3月22讯,现有外媒发现,苹果新推出的StudioDisplay可以在之前不支持HeySiri语音指令的几款老Mac电脑上使用这一功能。苹果只有2018年以及之后发布的M红米k50pro和真我gt2pro相差100元,选择哪款好?建议选择红米K50Pro,因为搭载的天玑9000整体功耗和发热控制更优秀,真我GT2Pro搭载的骁龙8Gen1目前的口碑非常差,特别是功耗高导致的发热非常离谱,在目前各家厂商的调教没买iPhone13的恭喜,iPhone14全面改观iPhone近两年来是一个大更新,相比iPhone13弥补了iPhone12的很多短板,但真正的重头戏其实是iPhone14,据透露消息来看,没入手iPhone13得恭喜了,因为iWiFi网速信号更强的5G双频路由器前言大家好,我是科技好物菌。华三路由器,我家里正在用的是新华三路由器NX54,它的价格更为实惠,性价比更高,我也写过评测文章,大家有兴趣的可以去翻看。鲸路由H3CBX54千兆双频路你要的生态体验以及5G网络,它都能给你?它叫Hinova9Pro,来自中邮通信其实它在去年12月3日就正式亮相了,采用高通骁龙778G平台,完整支持5G通讯。Hinova9Pro的设计偏年轻化,用了星耀环镜头组设计,其中
自拍除了摆pose还要注意什么?vivoS10Pro拍照指南提到手机自拍,相信很多人都会认为不就是一张自拍照吗?画个美美的妆,找个好看的地方咔嚓一下,后期再美颜一下不就好了。这样的操作看似很简单,但其实所耗费的时间都留给了后期修图处理图片上小米MIX4与华为P50Pro夜拍对比小米和华为在最近都发布最新旗舰机,只不过这两大手机厂商目前情况有点不同。华为是在非常艰难的情况下推出P50Pro,而且还是一款4G手机。而小米则是意气风发,雷军在发布会上侃侃而谈,百元好物,aigoT21真无线蓝牙耳机,学生党盲选暑假期间,相信不少同学都已经在准备给自己购买开学季的产品了,毕竟要做到兵马未动,粮草先行,最近我拿到了一款来自aigo的T21真无线蓝牙耳机,在体验了一番之后觉得它非常适合一些预算Javascript编码规范缩进使用softtab(4个空格)。varx1,y1if(xy)x10elsex1单行长度不要超过80,但如果编辑器开启wordwrap可以不考虑单行长度。分号以下几种情况后需加分微信最新变化上热搜,快看你的变了没?面对来势汹汹的疫情很多网友放弃了原本的出游打算选择在家躺着玩手机每天在网上激情冲浪谁还不是个表情包大户呢每当词不达意力不从心的时候扔出一个表情包简直胜过千言万语!而说到满足中国用户新机华为P50屏幕全球第一iPhone13新功能一加双屏手机一加海外发布双屏手机预热视频8月11日消息今日凌晨,一加手机在美国地区的官方账号发布了一段视频,展现了一台双屏手机真机。这款手机采用左右折叠的设计,两块屏幕中播放有太空星云的动画。华为Mate50Pro渲染图可折叠环形4镜头1亿主摄,心脏是骁龙895华为手机曾经推出一款可以辅助自拍的手机壳,这款手机壳设计了一个可以折叠收纳的闪光灯,在自拍的时候可以将闪光灯打开,而不需要的时候则可以将这个闪光灯收纳起来。外媒根据这个设计理念,制安卓版FaceID?OPPO活体检测专利公开,可兼顾速度和安全性近日,OPPO一项名为活体检测方法及装置计算机可读存储介质和电子设备的专利被公开。内容显示,该专利提供的监测方法包括在屏幕分别展示至少两帧图像的情况下,确定目标对象与各图像对应的眼10代赛扬英特尔G5905促销319元赛扬是英特尔为入门用户准备的处理器产品,一般用于日常办公,组建低价和低功耗平台,近日,10代赛扬英特尔G5905在京东开启了促销活动,原价439,现价319元,想要打造入门平台的用松下RF3700收音机评测,它值60到70欧元吗?一收音机概况松下RF3700收音机也被称为GX700,是一款上世纪九十年代中叶就推出的数调式普及型便携式中波调频短波收音机。如果我的收音机都有绰号的话,这款机器可被唤作手提包,它的真香,iOS15将为AirPods系列耳机带来新功能中关村在线消息据外媒显示,苹果在iOS15和iPadOS15的测试版中,加入了查找AirPodsPro和AirPodsMax两款产品的功能,其原理类似于今年4月苹果发布的AirTa