《剑指offer》Java版--13.机器人的运动范围(BFS)

剑指offer原题13:机器人的运动范围
地上有一个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18。但它不能进入方格(35,38),因为3+5+3+8=19。请问该机器人能够到达多少个格子?
LeetCode原题:https://leetcode.cn/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/description/

class Solution {public int wardrobeFinishing(int m, int n, int cnt) {// ps:这是力扣题目有点不一样,方向只有两个。int[][] dir = new int[][]{{1, 0}, {0, 1}};boolean[][] vis = new boolean[m][n];LinkedList<Pair<Integer, Integer>> queue = new LinkedList<>();queue.push(new Pair<>(0, 0));int res = 0;while(queue.size() > 0) {Pair<Integer, Integer> pair = queue.pollFirst();vis[pair.getKey()][pair.getValue()] = true;res++;for(int i = 0; i < 2; ++i) {int nextX = pair.getKey() + dir[i][0];int nextY = pair.getValue() + dir[i][1];if(nextX >= 0 && nextX < m && nextY >= 0 && nextY < n&& !vis[nextX][nextY]&& digitalSum(nextX) + digitalSum(nextY) <= cnt) {queue.push(new Pair<>(nextX, nextY));}}}return res;}private int digitalSum(int x) {int res = 0;while(x > 0) {res += x % 10;x /= 10;}return res;}
}

时间复杂度O(NM)

空间复杂度O(NM)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径

魔法森林的秘密路径 题目描述 在一个遥远的国度里&#xff0c;存在一个神秘的魔法森林&#xff0c;传说中森林深处隐藏着一个古老的宝藏。这个宝藏只能通过找到森林中最长的“递减魔法路径”来解锁。这个路径由一系列魔法石组成&#xff0c;每个魔法石刻有不同的数字&#xf…

金融知识——OMS、EMS和PMS分别是什么意思

金融知识——OMS、EMS和PMS分别是什么意思 OMSEMSPMS OMS OMS&#xff08;Order Management System&#xff09;是为了管理头寸&#xff0c;以多种方式创建订单&#xff0c;并进行订单屈从检验以使得用户在订单创建时收到一些约束。在交易管理方面&#xff0c;OMS提供交易组合…

Lambda表达式:现代编程语言的利器

引言&#xff1a; 在现代编程语言中&#xff0c;Lambda表达式成为了一种强大而灵活的工具&#xff0c;它的引入为编程带来了更为简洁和高效的方式。Lambda表达式起源于函数式编程范式&#xff0c;被广泛应用于诸如Java、Python、C#等主流编程语言。本文将深入探讨Lambda表达式…

指针:6-1移动字母(本题要求编写函数,将输入字符串的前3个字符移到最后)

本题要求编写函数&#xff0c;将输入字符串的前3个字符移到最后。 函数接口定义&#xff1a; void Shift( char s[] ); 其中char s[]是用户传入的字符串&#xff0c;题目保证其长度不小于3&#xff1b;函数Shift须将按照要求变换后的字符串仍然存在s[]里。 裁判测试程序样例…

【Python】基于flaskMVT架构与session实现博客前台登录登出功能

目录 一、MVT说明 1.Model层 2.View层 3.Template层 二、功能说明 三、代码框架展示 四、具体代码实现 models.py 登录界面前端代码 博客界面前端代码&#xff08;profile.html&#xff09; main.py 一、MVT说明 MVT架构是Model-View-Template的缩写&#xff0c;是…

《剑指offer》Java版--12.矩阵中的路径(DFS+剪枝)

剑指offer原题:矩阵中的路径 请设计一个函数&#xff0c;用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始&#xff0c;每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格&#xff0c;那么该路径不能再…

持续集成交付CICD:Linux 部署 Jira 9.12.1

目录 一、实验 1.环境 2.K8S master节点部署Jira 3.Jira 初始化设置 4.Jira 使用 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins slave &#xff08;从节点&#xff09; jira9.12.1…

使用vue-qr,报错in ./node_modules/vue-qr/dist/vue-qr.js

找到node_modules—>vue-qr/dist/vue-qr.js文件&#xff0c;搜…e,将…去掉&#xff0c;然后重新运行项目。

Confluent 与阿里云将携手拓展亚太市场,提供消息流平台服务

10 月 31 日&#xff0c;杭州云栖大会上&#xff0c;阿里云云原生应用平台负责人丁宇宣布&#xff0c;Confluent 成为阿里云技术合作伙伴&#xff0c;合作全新升级&#xff0c;一起拓展和服务亚太市场。 本次合作伙伴签约&#xff0c;阿里云与消息流开创领导者 Confluent 将进一…

微服务项目遇到的小问题

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not MySQL 8.0版本导致的问题&#xff0c;需要在后面加allowPublicKeyRetrievaltrue datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306…

git入门指南:新手快速上手git(Linux环境如何使用git)

目录 前言 1. 什么是git&#xff1f; 2. git版本控制器 3. git在Linux中的使用 安装git 4. git三板斧 第一招&#xff1a;add 第二招&#xff1a;commit 第三招&#xff1a;push 5. 执行状态 6. 删除 总结 前言 Linux的基本开发工具介绍完毕&#xff0c;接下来介绍一…

重构云计算,打造 AI 原生时代的云计算产品与技术体系,实现 AI 零距离

概述 自 ChatGPT 大模型横空出世以来&#xff0c;文心一言、通义千问等诸多大模型接踵而来&#xff0c;感觉这个世界每天都在发生着翻天覆地的变化。 今年很有幸&#xff0c;参与了云栖的盛宴&#xff0c;当时被震惊到瞠目结舌&#xff0c;12 月 20 日百度云智能云智算大会&a…

Flink实时电商数仓(五)

FlinkSQL的join Regular join普通join&#xff0c;两条流的数据都时存放在内存的状态中&#xff0c;如果两条流数据都很大&#xff0c;对内存压力很大。Interval Join: 适合两条流到达时间有先后关系的&#xff1b;一条流的存活时间短&#xff0c;一条流的存活时间长。Lookup …

(一)深入理解Mysql底层数据结构和算法

什么是索引 索引是帮助MySQL高效获取数据的排好序的数据结构 数据结构有哪些 数据结构模拟网站&#xff1a;Data Structure Visualization 二叉树 不适合做自增ID的数据结构。如下示意图&#xff0c;假设采用二叉树作为表自增主键ID的数据存储结果如下&#xff1a;当查询i…

2023前端面试题(计算机网络):HTTP和HTTPS协议的区别

HTTP和HTTPS协议的区别 回答思路&#xff1a;费用区别-->传输协议区别-->端口号区别-->连接难易程度-->安全性1.费用区别2.传输协议的区别3.端口号区别4.连接难易程度5.安全性 回答思路&#xff1a;费用区别–>传输协议区别–>端口号区别–>连接难易程度–…

docker笔记1-安装与基础命令

docker的用途&#xff1a; 可以把应用程序代码及运行依赖环境打包成镜像&#xff0c;作为交付介质&#xff0c;在各种环境部署。可以将镜像&#xff08;image&#xff09;启动成容器&#xff08;container&#xff09;&#xff0c;并提供多容器的生命周期进行管理&#xff08;…

2.7 转置与置换

一、转置 A A A 的转置&#xff08;transpose&#xff09;记作 A T A^T AT&#xff0c; A T A^T AT 的列就是 A A A 的行。 若 A A A 是 m n m\times n mn 的矩阵&#xff0c;则它的转置 A T A^T AT 就是 n m n\times m nm 的矩阵&#xff1a; 转置 如果 A [ 1 2 3 0 …

算法题Python常用内置函数、方法、技巧汇总(其二:哈希表)

文章目录 哈希表相关操作设置值的默认类型计数器获得键、值或者键值对 华为OD算法/大厂面试高频题算法练习冲刺训练 哈希表相关操作 设置值的默认类型 使用内置模块collections中的defaultdict(func)&#xff0c;能够将哈希表的值value的默认类型设置为func。譬如要设置哈希表…

异常处理和单元测试python

一、实验题目 异常处理和单元测试 二、实验目的 了解异常的基本概念和常用异常类。掌握异常处理的格式、处理方法。掌握断言语句的作用和使用方法。了解单元测试的基本概念和作用。掌握在Python中使用测试模块进行单元测试的方法和步骤。 三、实验内容 编程实现如下功能&a…

HTTP小记1

目录 post不一定比get安全 HTTP与HTTPS区别 HTTP/1.1的优点 长连接的好处 HTTP/1.1性能 post不一定比get安全 post用bady传输数据&#xff0c;get用url传输数据&#xff0c;但这并不能说get就是比post安全的。 在浏览器地址栏可以看到使用get请求明文传输的数据&#xff…