【力扣每日一题】2023.9.13 检查骑士巡视方案

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个n*n大小的矩阵,矩阵的元素表示骑士已经行动的次数,问我们骑士能不能按照矩阵里元素顺序来巡视整个矩阵。

骑士每次移动的方案有八种,类似于中国象棋里的马走日。

骑士在左右和上下两种方向之中,每次移动都是先移动一种方向两格,再移动另一个方向一格,那么每次移动的点是固定的八个点,因此我们只需要在这八个点中寻找元素等于当前所在格子的元素+1的位置,如果找不到,那么就表示骑士无法按照矩阵中的顺序去巡视。

我们使用递归去寻找每个点,题目有说一开始骑士在左上角,因此我们从左上角开始递归,我们不断按照上诉的过程递归,直到我们把矩阵中所有格子都走一遍了,也就是递归了n*n+1次,那么表示骑士可以按照矩阵的顺序去巡视,我们返回true即可。

代码:

class Solution {
public:bool find(vector<vector<int>>&grid,int n,int i,int j,int index){if(index==n*n) return true;     //走完了整个棋盘if(i<0||j<0||i>=n||j>=n||grid[i][j]!=index) return false;//向八个方向试探if(find(grid,n,i+1,j+2,index+1)) return true;if(find(grid,n,i+1,j-2,index+1)) return true;if(find(grid,n,i+2,j+1,index+1)) return true;if(find(grid,n,i+2,j-1,index+1)) return true;if(find(grid,n,i-2,j+1,index+1)) return true;if(find(grid,n,i-2,j-1,index+1)) return true;if(find(grid,n,i-1,j+2,index+1)) return true;if(find(grid,n,i-1,j-2,index+1)) return true;return false;}bool checkValidGrid(vector<vector<int>>& grid) {return find(grid,grid.size(),0,0,0);}
};

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

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

相关文章

7-13 计算圆周率

输入格式&#xff1a; 输入在一行中给出小于1的阈值。 输出格式&#xff1a; 在一行中输出满足阈值条件的近似圆周率&#xff0c;输出到小数点后6位。 输入样例&#xff1a; 0.01 输出样例&#xff1a; 3.132157 ACCODE #include <iostream> #include <ioman…

6、如何将 Flink 中的数据写入到外部系统(文件、MySQL、Kafka)

目录 1、如何查询官网 2、Flink数据写入到文件 3、Flink数据写入到Kafka 4、Flink数据写入到MySQL 1、如何查询官网 官网链接&#xff1a;官网 2、Flink数据写入到文件 传送门&#xff1a;Flink数据写入到文件 3、Flink数据写入到Kafka 传送门&#xff1a;Flink数据写入…

vue前后端分离单点登录,结合长token和短token进行登录

单点登录背景 在公司发展初期&#xff0c;公司拥有的系统不多&#xff0c;通常一个两个&#xff0c;每个系统都有自己的登录模块&#xff0c;运营人员每天用自己的账号登陆&#xff0c;很方便&#xff0c;但是&#xff0c;随着企业的发展&#xff0c;用到的系统随之增加&#x…

webpack 基础配置

常见配置 文件打包的出口和入口webpack如何开启一台服务webpack 如何打包图片&#xff0c;静态资源等。webpack 配置 loader配置 plugin配置sourceMap配置 babel 语法降级等 接下来 &#xff0c; 我们先从webpack的基本配置 开始吧&#xff01; 在准备 配置之前 , 搭建一个 …

身份和访问管理解决方案:混合型IAM

对于依赖于本地 IT 基础结构和传统安全模型的组织&#xff0c;可以更轻松地验证和授权企业网络内的所有内容&#xff0c;包括设备、用户、应用程序和服务器。尝试从公司网络外部获取访问权限的用户使用虚拟专用网络 &#xff08;VPN&#xff09; 和网络访问控制 &#xff08;NA…

【SpringMVC】自定义注解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Spring MVC》。&#x1f3…

云计算与虚拟化

一、概念 什么是云计算&#xff1f; 云计算&#xff08;cloud computing&#xff09;是分布式计算的一种&#xff0c;指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序&#xff0c;然后&#xff0c;通过多部服务器组成的系统进行处理和分析这些小程序得到结果…

【FPGA项目】进阶版沙盘演练——报文收发(报文处理、CDC、CRC)

前言 书接上文【FPGA项目】沙盘演练——基础版报文收发_子墨祭的博客-CSDN博客&#xff0c;前面我们做了基础版的报文收发&#xff0c;相信对逻辑设计有了一定的认知&#xff0c;在此基础上&#xff0c;继续完善一个实际报文收发可能会遇到的一些处理&#xff1a; 报文处理握手…

Matlab图像处理-

彩色模型 彩色模型是用来表示彩色的数学模型&#xff0c;也称为彩色模型。 RGB彩色模型是最常用的一种彩色模型&#xff0c;但在计算机系统中表达色彩信息的模型不止一种。后文介绍四种最常用的色彩模型。 RGB模型 RGB彩色空间对应的坐标系统是一个立方体&#xff0c;如图 8-…

家政服务预约小程序,推拿spa上门预约系统

家政服务预约小程序&#xff0c;用户直接发布需求下单&#xff0c;师傅入驻抢单派单&#xff0c;多商家入驻&#xff0c;上门预约服务流程清晰&#xff0c;适合家政公司或需要预约场景的团队公司使用&#xff0c;支持多种行业上门预约服务场景&#xff1a;家政保洁维修上门服务…

Mybatis学习笔记2 增删改查及核心配置文件详解

Mybatis学习笔记1 Mybatis入门_biubiubiu0706的博客-CSDN博客 将Mybatis进行封装 SqlSessionUtil工具类 package com.example.util;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFacto…

运维学习之部署Grafana

sudo nohup wget https://dl.grafana.com/oss/release/grafana-10.1.1.linux-amd64.tar.gz &后台下载压缩包&#xff0c;然后按一下回车键。 ps -aux | grep 15358发现有两条记录&#xff0c;就是还在下载中。 ps -aux | grep 15358发现有一条记录&#xff0c;并且tail …