剑指offer题解合集——Week2day1

文章目录

  • 剑指offerWeek2
    • 周一:机器人的运动范围
      • AC代码
      • 思路:

剑指offerWeek2

周一:机器人的运动范围

题目链接:机器人的运动范围

地上有一个 m行和 n列的方格,横纵坐标范围分别是 0∼m−1和 0∼n−1
。一个机器人从坐标 (0,0)的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。但是不能进入行坐标和列坐标的数位之和大于 k的格子。请问该机器人能够达到多少个格子?注意:0<=m<=50
0<=n<=50
0<=k<=100
样例1
输入:k=7, m=4, n=5输出:20
样例2
输入:k=18, m=40, n=40输出:1484解释:当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。

AC代码

class Solution {
public:queue<pair<int, int>> q;int getOne(int x){int s = 0;while (x) s += (x % 10), x /= 10;return s;}int getSum(auto p){return getOne(p.first) + getOne(p.second);}int movingCount(int threshold, int rows, int cols){if (!rows || !cols) return 0;q.push({0, 0});int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};int res = 0;vector<vector<bool>> st(rows, vector<bool>(cols));while (q.size()){auto t = q.front();q.pop();if (getSum(t) > threshold || st[t.first][t.second]) continue;res ++ ;st[t.first][t.second] = true;for (int i = 0; i < 4; i ++ ){int a = t.first + dx[i], b = t.second + dy[i];if (a >= 0 && b >= 0 && a < rows && b < cols) q.push({a, b});}}return res;}
};

思路:

整体思路

二维数组,统计元素特征,可以使用DFS也可以BFS,这里以BFS为例BFS步骤
- 创建队列
- 出发点入队
- while (队列有元素)- 取出队首元素- 判断是否满足某些条件,不满足则进入下次循环- 判断当前位置可以走的下一个位置的一些边界条件- 下一个位置加入队列

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

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

相关文章

前端进度条和进度条流光效果

前言 进度条的实现学习这个的,这里只是记录下自己笔记 https://bytefish.medium.com/css-awesome-trick-how-to-create-a-progress-bar-that-changes-color-according-to-progress-be9652ebdd1c 在线演示地址(原作者) https://codepen.io/bytefishmedium/pen/VwXYKQK 在线演示…

2023.12.27力扣每日一题——保龄球游戏的获胜者

2023.12.27 题目来源我的题解方法一 模拟 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2660 我的题解 方法一 模拟 就纯模拟&#xff0c;在计算玩家分数时&#xff0c;只要不是第一轮都需要判断前两轮中是否有得分为10的&#xff0c;若有则需要将本轮分数*2 时间复杂…

opencv和gdal的读写图片波段顺序问题

最近处理遥感影像总是不时听到 图片的波段错了&#xff0c;一开始不明就里&#xff0c;都是图片怎么就判断错了。 1、图像RGB波段顺序判断 后面和大家交流&#xff0c;基本上知道了一个判断标准。 一般来说&#xff0c;进入人眼的自然画面在计算机视觉中一般是rgb波段顺序表示…

【算法题】13. 罗马数字转整数

题目 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&a…

Linux账号和权限管理

目录 前言 一、管理用户账号 1、Linux系统中用户账号类型 2、用户标识UID的分类 3、用户账号文件 4、用户账号的初始配置文件 5、用户账号的管理命令 5.1 useradd 5.2 usermod 5.3 passwd 5.4 userdel 二、管理组账号 1、Linux系统中组账号类型 2、组标识号GID的…

drf知识--07

回顾之视图层 # 两个视图基类&#xff1a; from rest_framework.views import APIView&#xff1a; 包装新的request、去除csrf认证、执行三大认证和处理全局异常 -as_view -dispatch -parser_class -render_class from rest_framewo…

5.8 Linux 服务实战

一、项目概述 项目名称&#xff1a;web 网站 项目时间&#xff1a;2022.7.18-2022.7.24 项目需求&#xff1a; ① 客户端使用kickstart部署4台虚拟机(centos7.9)&#xff0c;所有服务器IP都为静态IP。② 客户端使用XShell的密钥登陆跳板机③ 所有后端服务器全部通过跳板机来…

Shell命令与Linux操作系统:深入理解其原理和功能(2/2)

在当今数字化时代&#xff0c;操作系统的安全性和稳定性对于个人用户和企业都至关重要。Linux&#xff0c;作为一个广泛使用的操作系统&#xff0c;其强大的文件权限系统是保护系统安全的核心机制之一。无论是在服务器管理、软件开发还是日常使用中&#xff0c;有效地管理和理解…

MongoDB文档操作

3.3 文档操作 3.1 文档介绍 文档的数据结构和 JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。 BSON 是一种类似 JSON 的二进制形式的存储格式&#xff0c;是 Binary JSON 的简称。 文档是一组键值(key-value)对(即 BSON)&#xff0c;一个简单的文档例子如下&…

输入日期,计算当前日期是这一年中的第几天(涉及闰年问题)

一、应用到的知识&#xff1a;闰年问题&#xff0c;数组&#xff0c;for循环&#xff0c;命令行参数&#xff0c;atoi函数 1. 闰年问题&#xff1a; 闰年 是指该年有366日&#xff0c;即较平常年份多出一日。每400年就会有一次闰年&#xff1b;或者年份是4的倍数&#xff0c;但…

【后端】拷贝数据字典

文章目录 前言逻辑前端创建复制弹窗引用复制弹窗打开复制弹窗后端定义【复制】控制器定义服务接口实现服务接口前言 一开始在设计单据状态的时候,是考虑了将所有单据状态的字典项全部规划好啦,但是实际使用,可能不同的业务其单据的字典项内容不同,例如客户要求的到货单单据…

Flowable-升级为7.0.0.M2-第二节

目录 替换变化的类和配置把javax.servlet 替换为 jakarta.servlet修改redis的配置配置logging.level.org.springframework.boot.autoconfigureerror避免影响视听 替换变化的类和配置 把javax.servlet 替换为 jakarta.servlet import javax.servlet.ServletContext; import ja…

【Qt-容器类】

Qt编程指南 ■ 顺序容器类■ QList■ QVector■ QLinkedList■ QStack■ QQueue ■ 关联容器类■ QSet■ QMap■ QMultiMap■ QHash■ QMultiHash ■ 顺序容器类 ■ QList QList 比较常用的容器类&#xff0c;以数组列表的形式实现&#xff0c;在前、后添加数据非常快。以下为…

SpringBoot操作world格式的文件与pdf格式的文件互转

文章目录 一、SpringBoot如何将pdf格式的文件流转换成world格式的文件流二、SpringBoot如何将world格式的文件转换成pdf格式的文件 一、SpringBoot如何将pdf格式的文件流转换成world格式的文件流 ​ 将 PDF 格式的文件流转换成 Word 格式的文件流是一个比较复杂的任务&#xf…

【Linux基础】9. 用户管理

文章目录 【 1. 用户基本管理 】1.1 useradd 添加用户1.2 passwd 更改用户密码1.3 su 切换用户1.4 userdel 删除用户 【 2. 用户的组 】2.1 more 查看系统所有组2.2 显示用户的组2.3 更改用户的组 【 3. 环境变量 】 【 1. 用户基本管理 】 1.1 useradd 添加用户 全称作用use…

【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本

文章目录 摘要引言正文1. 准备工作2. 使用ipaguard处理Lua文件3. 运行ipagurd进行混淆代码加密具体步骤测试和配置阶段IPA 重签名操作步骤4. IPA重签名与发布 总结 摘要 本文将介绍如何使用ipagurd工具对Cocos2d-x中的Lua脚本进行打包与混淆&#xff0c;以及在iOS应用开发中的…

tekton 发布 kubernetes 应用

tekton 发布 kubernetes 应用 基于Kubernetes 服务部署 Tekton Pipeline 实例&#xff0c;部署完成后使用tekton来完成源码拉取、应用打包、镜像推送和应用部署。 本文实现一个 golang-helloworld 项目 CI/CD 的完整流程&#xff0c;具体包括以下步骤&#xff1a; 从 gitee…

css 超过一行/多行显示省略号... - 附示例

效果 1、超过一行 2、超过多行 - 以两行为例 二、示例代码 1、超过一行 margin: 20px; width: 50px; border: 1px solid red; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 2、超过多行 - 以两行为例 margin: 20px; width: 50px; border: 1px solid r…

【日常聊聊】年度总结

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 博客创作的初衷&#xff1a; 学到的技能&#xff1a; Java知识的深度掌握&#xff1a; Spring框架的应用和实践&#xff1a; 前端技…

Unity so文件的问题

文章目录 问题在面板上无法显示子节点如何保存继承于so的类必须放置在单个脚本so类文件名和类名要一致 问题 最近自己在写一个行为树出现一些问题记录一下首先NodeTree肯定是so文件但是node可以是单纯的类&#xff0c;也可以是so。后来我发现只能是so 在面板上无法显示 第一…