news 2026/4/23 8:52:31

二分+bfs

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二分+bfs

lc

lc1970

二分猜答案+BFS

找能从网格第一行走到最后一行的最晚日期

核心是二分判断某天前的格子封堵后是否还能通行

vis 防重复走 a存储每次场景

class Solution {
vector<array<int, 2>> dirs{{-1, 0}, {0, -1}, {1, 0}, {0, 1}};
public:
int latestDayToCross(int row, int col, vector<vector<int>>& cells) {
auto check = [&](int v) -> bool {
vector<vector<int>> a(row, vector<int>(col));
vector<vector<int>> vis(row, vector<int>(col));
for (int i = 0; i < v; i++) {
int x = cells[i][0] - 1, y = cells[i][1] - 1;
a[x][y] = 1;
}
queue<array<int, 2>> q;
for (int j = 0; j < col; j++) {
if (a[0][j] == 0) {
vis[0][j] = v + 1;
q.push({0, j});
}
}
while (!q.empty()) {
auto [x, y] = q.front();
q.pop();
if (x == row - 1) return true;
for (auto [dx, dy]: dirs) {
int nx = x + dx, ny = y + dy;
if (0 <= nx && nx < row && 0 <= ny && ny < col && vis[nx][ny] != v + 1 && a[nx][ny] == 0) {
q.push({nx, ny});
vis[nx][ny] = v + 1;
}
}
}
return false;
};

int left = 0, right = cells.size();
int ans = 0;
while (left <= right) {
int mid = left + (right - left) / 2;
if (check(mid)) {
ans = mid;

left = mid + 1;
} else {
right = mid - 1;
}
}
return ans;
}
};

不够优雅 但绝对正确的闭区间二分ovo

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 15:50:02

网盘直链下载助手:快速分享大模型权重文件

网盘直链下载助手&#xff1a;快速分享大模型权重文件 在今天的大模型开发中&#xff0c;一个让人又爱又恨的现实是&#xff1a;模型能力越强&#xff0c;体积也越大。动辄几十GB的权重文件&#xff0c;让每一次实验都像是一场“等待的艺术”——你精心设计好微调流程&#xf…

作者头像 李华
网站建设 2026/4/22 15:00:56

IsaacLab技术深度解析:机器人学习框架的架构设计与工程实践

IsaacLab技术深度解析&#xff1a;机器人学习框架的架构设计与工程实践 【免费下载链接】IsaacLab Unified framework for robot learning built on NVIDIA Isaac Sim 项目地址: https://gitcode.com/GitHub_Trending/is/IsaacLab 技术框架概述 NVIDIA IsaacLab作为基于…

作者头像 李华
网站建设 2026/4/19 0:21:51

Tsuru权限系统完全指南:3步掌握基于角色的访问控制

Tsuru权限系统完全指南&#xff1a;3步掌握基于角色的访问控制 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru Tsuru作为开源的PaaS平台&#xff0c;其权限系统采用了先进的基于…

作者头像 李华
网站建设 2026/4/22 3:19:18

移动自动化新纪元:3步掌握跨平台应用交互技术

移动自动化新纪元&#xff1a;3步掌握跨平台应用交互技术 【免费下载链接】mobile-mcp Model Context Protocol Server for Mobile Automation and Scraping 项目地址: https://gitcode.com/gh_mirrors/mo/mobile-mcp 在移动应用开发领域&#xff0c;iOS和Android平台的…

作者头像 李华
网站建设 2026/4/18 14:28:16

3个步骤让Skyvern自动化工具成为你的网页操作助手

你是否曾经在重复的网页操作中耗费大量时间&#xff1f;登录系统、填写表单、下载文件、抓取数据...这些看似简单的任务往往占据了我们宝贵的工作时间。Skyvern作为一个开源的网页自动化工具&#xff0c;能够通过AI智能理解你的意图&#xff0c;自动完成各种网页交互任务。今天…

作者头像 李华
网站建设 2026/4/23 5:35:38

SystemVerilog继承机制解析:手把手教程

深入理解SystemVerilog继承&#xff1a;从零构建可复用验证组件 你有没有遇到过这样的场景&#xff1f; 在一个SoC验证项目中&#xff0c;需要支持多种相似但略有不同的数据包格式——比如基础以太网帧、加了VLAN标签的帧、再往上还有MPLS封装。如果每种都单独写一个类&#x…

作者头像 李华