2023-09-13力扣每日一题

链接:

2596. 检查骑士巡视方案

题意

骑士走日字,就是absx=2 absy=1absx=1 absy=2

一共就那么点格子,暴力搜八个方向也行

先用数组存每一步对应的位置,然后判断相邻两个位置是否符合日字

我直接用absx+absy==3就过了,大概是不存在一个有单方向走三格案例或不存在这样的案例??

实际代码:

c++ 复制代码
#include<bits/stdc++.h>
using namespace std;
bool checkValidGrid(vector<vector<int>>& grid)
{
	if(grid[0][0]!=0) return false;
	
	typedef pair<int,int> PII;
	int lg=grid.size();
    vector<PII>Path(lg*lg+7);
    
    for(int i=0;i<lg;i++)
    {
    	for(int j=0;j<lg;j++)
    	{
    		Path[grid[i][j]].first=i;
    		Path[grid[i][j]].second=j;
		}
	}
	
	for(int i=0;i<lg*lg-1;i++)
	{
		int absx=abs(Path[i].first-Path[i+1].first);
		int absy=abs(Path[i].second-Path[i+1].second);
		//if(absx>=3||absy>=3) return false;
		if(absx+absy==3) continue;
		return false;
	}
	return true;
}

限制:

  • n == grid.length == grid[i].length
  • 3 <= n <= 7
  • 0 <= grid[row][col] < n * n
  • grid 中的所有整数 互不相同
相关推荐
6Hzlia5 小时前
【Classic 150 刷题计划】 LeetCode 14. 最长公共前缀 | C++ 纵向扫描法与防越界细节
c++·算法·leetcode
Tisfy21 小时前
LeetCode 0836.矩形重叠:xy两方向分别看
数学·leetcode·题解·模拟
青山木21 小时前
Hot 100 --- 最长递增子序列
java·数据结构·算法·leetcode·动态规划
土司大王1 天前
LeetCode hot100——33.搜索旋转排序数组:Java 二分模板与 O(log n) 实现
数据结构·算法·leetcode
辰辉创聚1 天前
禽流感病毒分子基础:表面抗原与内部转录复合体的功能解析
ide·leetcode·rabbitmq·重组血凝素蛋白·甲型流感病毒核蛋白·禽流感单抗
ysu_03141 天前
08-二叉树遍历:四种方式详解
c语言·数据结构·算法·leetcode
土司大王1 天前
LeetCode hot100——153.寻找旋转排序数组中的最小值:Java 二分模板与 O(log n) 分析
java·算法·leetcode
土司大王1 天前
LeetCode hot100——4.寻找两个正序数组的中位数:Java 二分第K小 递归裁剪
java·算法·leetcode
6Hzlia1 天前
【Classic 150 刷题计划】 LeetCode 123. 买卖股票的最佳时机 III | C++ 状态机动态规划与通用交易拓展
c++·算法·leetcode