当前位置: 首页 > article >正文

DeepSeek LeetCode 2617. 网格图中最少访问的格子数 TypeScript实现

以下是 LeetCode 2617「网格图中最少访问的格子数」的 TypeScript 实现采用 BFS 并查集路径压缩 优化保证每个格子只被访问一次时间复杂度 O(mn·α(mn))空间复杂度 O(mn)。typescriptfunction minimumVisitedCells(grid: number[][]): number {const m grid.length, n grid[0].length;if (m 1 n 1) return 1;// 距离数组-1 表示未访问const dist: number[][] Array.from({ length: m }, () new Array(n).fill(-1));dist[0][0] 1;// 行并查集rowParent[i][j] 表示在第 i 行中列 j 及之后下一个未访问的列const rowParent: number[][] Array.from({ length: m }, () new Array(n 1).fill(0));// 列并查集colParent[j][i] 表示在第 j 列中行 i 及之后下一个未访问的行const colParent: number[][] Array.from({ length: n }, () new Array(m 1).fill(0));// 初始化并查集每个位置指向自身for (let i 0; i m; i) {for (let j 0; j n; j) rowParent[i][j] j;}for (let j 0; j n; j) {for (let i 0; i m; i) colParent[j][i] i;}// 查找 路径压缩const findRow (i: number, j: number): number {if (rowParent[i][j] ! j) {rowParent[i][j] findRow(i, rowParent[i][j]);}return rowParent[i][j];};const findCol (j: number, i: number): number {if (colParent[j][i] ! i) {colParent[j][i] findCol(j, colParent[j][i]);}return colParent[j][i];};// 标记某格子已被访问从并查集中移除const unionRow (i: number, j: number) {rowParent[i][j] findRow(i, j 1);};const unionCol (j: number, i: number) {colParent[j][i] findCol(j, i 1);};// 起点标记为已使用unionRow(0, 0);unionCol(0, 0);const queue: [number, number][] [[0, 0]];while (queue.length) {const [i, j] queue.shift()!;const step dist[i][j];const maxRight Math.min(n - 1, j grid[i][j]);const maxDown Math.min(m - 1, i grid[i][j]);// 向右移动同一行let col findRow(i, j 1);while (col maxRight) {dist[i][col] step 1;if (i m - 1 col n - 1) return dist[i][col];queue.push([i, col]);unionRow(i, col);unionCol(col, i);col findRow(i, col 1);}// 向下移动同一列let row findCol(j, i 1);while (row maxDown) {dist[row][j] step 1;if (row m - 1 j n - 1) return dist[row][j];queue.push([row, j]);unionRow(row, j);unionCol(j, row);row findCol(j, row 1);}}return dist[m - 1][n - 1];}核心思路· BFS 层次遍历每次移动代价为 1首次到达 (m-1, n-1) 时即为最少步数。· 并查集跳过已访问格子· 对每一行维护一个并查集 rowParent指向下一个未访问的列。· 对每一列维护一个并查集 colParent指向下一个未访问的行。· 查找操作 findRow / findCol 配合路径压缩能快速跳过已被访问的格子。· 双向标记当一个格子 (r, c) 被访问后同时从行并查集和列并查集中移除确保不会被重复处理。复杂度分析· 时间复杂度O(mn·α(mn))其中 α 为阿克曼反函数近似常数。每个格子最多被访问一次并查集操作几乎为常数。· 空间复杂度O(mn)用于存储距离数组、两个并查集以及 BFS 队列。

相关文章:

DeepSeek LeetCode 2617. 网格图中最少访问的格子数 TypeScript实现

以下是 LeetCode 2617「网格图中最少访问的格子数」的 TypeScript 实现,采用 BFS 并查集(路径压缩) 优化,保证每个格子只被访问一次,时间复杂度 O(mnα(mn)),空间复杂度 O(mn)。typescript function minim…...

DeepSeek LeetCode 2617. 网格图中最少访问的格子数 Java实现

以下是 LeetCode 2617「网格图中最少访问的格子数」的 Java 实现,采用 BFS TreeSet 优化,保证每个格子只被访问一次,时间复杂度 O(mn log(mn))。java class Solution {public int minimumVisitedCells(int[][] grid) {int m grid.length, n…...

Veo视频生成引擎深度集成方案(官方未公开的Webhook级联协议与跨平台帧同步技术首次披露)

更多请点击: https://kaifayun.com 第一章:Veo与其他AI视频工具整合 Veo 作为 Google 推出的高保真视频生成模型,其核心价值不仅体现在单点生成能力上,更在于与现有 AI 视频工作流的深度协同。它不追求封闭生态,而是通…...

【DeepSeek边缘部署实战指南】:20年架构师亲授5大避坑法则与3步极简上线法

更多请点击: https://codechina.net 第一章:DeepSeek边缘部署的演进逻辑与核心挑战 随着大模型从云端向终端下沉,DeepSeek系列模型在边缘侧的部署正经历从“能跑”到“稳跑”、从“单点适配”到“全栈协同”的范式跃迁。这一演进并非单纯的技…...

3分钟上手Translumo:免费实时屏幕翻译工具终极指南

3分钟上手Translumo:免费实时屏幕翻译工具终极指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否在游…...

Windows和Office一键激活终极指南:KMS_VL_ALL_AIO智能脚本完全解析

Windows和Office一键激活终极指南:KMS_VL_ALL_AIO智能脚本完全解析 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活和Office办公软件激活而烦恼吗?…...

如何在3分钟内精准定位Windows热键冲突:Hotkey Detective终极指南

如何在3分钟内精准定位Windows热键冲突:Hotkey Detective终极指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

LangGraph 状态存储优化:处理大规模多智能体数据的高效方案

LangGraph 状态存储优化:处理大规模多智能体数据的高效方案 本文面向有LangGraph开发经验、需要落地大规模多智能体应用的开发者,从底层原理、架构设计到代码实现全方位讲解如何将LangGraph状态存储的性能提升10倍、成本降低80%,支撑10万+级多智能体并发运行。 引言 痛点引…...

贝叶斯网络中条件独立性的判断 CS188 Note13 学习笔记

更好的阅读体验 D-Separation D-separation 是贝叶斯网络中的一个概念,用于通过图结构DAG随机变量之间的条件独立性 首先需要回顾一下的是:在图中,只要给定了某个节点的所有父节点,那么该节点就与其所有祖先节点在逻辑上是相互独…...

贝叶斯网络基本概念 CS188 Note12 学习笔记

更好的阅读体验 问题引入 在Note11中我们提及到了联合分布,我们先要想的就是一个问题:如果我们有n个变量,每个变量有d种取值,那联合概率表一共需要dnd^ndn行,这是一个非常庞大的数据量,这时候就引入了贝叶斯网络。贝…...

如何用TestDisk和PhotoRec拯救丢失数据:3分钟快速诊断与完整恢复指南

如何用TestDisk和PhotoRec拯救丢失数据:3分钟快速诊断与完整恢复指南 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 数据丢失是每个计算机用户都可能遇到的噩梦场景,但幸运的是&…...

VideoSrt终极指南:3步实现视频自动字幕生成,告别手动打轴烦恼

VideoSrt终极指南:3步实现视频自动字幕生成,告别手动打轴烦恼 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows …...

亮度与色度:揭秘视觉世界的“双重密码“

一、一个让我"开窍"的画廊故事 几年前我去参观一个摄影展,展览的主题很特别——“同一个世界,两种讲述”。展厅被一道墙分成两半,左边墙上挂的全是黑白摄影作品,右边墙上挂的全是彩色摄影作品。最有意思的是&#xff0c…...

黑白电视的“单眼魔法“:揭秘那个只用亮度讲故事的奇妙世界

一、一个让我"开窍"的雪天故事 我记得小时候有一年冬天,老家下了一场特别大的雪。早晨拉开窗帘的瞬间,我整个人都呆住了——外面的世界变成了一片纯白,屋顶、树枝、田野、远山,全都被雪覆盖。所有的颜色都消失了&#x…...

CD-GraB算法:协调数据顺序,加速分布式机器学习收敛

1. 分布式机器学习中的收敛瓶颈与数据顺序的隐秘关联在分布式机器学习的世界里,我们每天都在和数据、算力、时间赛跑。当你把训练任务拆分到多个GPU或服务器节点上并行执行时,一个看似不起眼的问题往往会成为性能提升的“暗礁”:数据以什么顺…...

为什么92.7%的用户装错ChatGPT桌面版?——20年IT架构师亲测:3个隐藏配置项决定响应速度与上下文留存能力

更多请点击: https://codechina.net 第一章:ChatGPT桌面版下载安装 OpenAI 官方尚未发布官方支持的 ChatGPT 桌面应用程序(截至 2024 年底),但社区提供了稳定、安全且功能完整的开源桌面客户端,其中 Chat…...

[开源] 康复处方安全卫士:面向康复科与临床药学的处方前置风险拦截系统

本项目是专为康复医学场景设计的处方安全校验工具,对接医院信息系统(HIS)中的康复理疗处方流程,在医生提交前实时识别禁忌证与物理因子之间的互斥风险。核心机制由两部分构成:一是基于 YAML 定义的「禁忌证物理因子」互…...

[开源] 急诊分诊能力闯关训练系统:面向护士与临床教学的可视化季票式技能成长平台

本项目是专为急诊科护士、进修生及实习生设计的分诊判断力训练工具,以「病例闯关 季票进度 多维反馈」为核心机制,将抽象的分诊能力拆解为20个难度递进的实战关卡。我们不做泛泛而谈的题库,而是用时间压力、星级评价、连胜激励和薄弱点定位…...

[开源] 临床路径卡牌化培训系统:面向医保办与临床科室的交互式规则教学工具

本项目是临床路径卡牌化培训系统(Pathway-Deck),专为医院医保办工作人员、临床科室教学负责人及新入职医师设计,将卫健委临床路径、DRG/DIP支付规则、医保负面清单等确定性规范,转化为可拖拽、可构筑、可验证的视觉化卡…...

ctf show web入门 254

这是一道典型的php对象序列化的题目可以从代码看出,本题需要让$user->isvip为true就可以调用yiponekeygetflag()函数从而获取flag从这可以看出$this->username$u&&$this->password$p时isvip为true,所以我们尝试构造payload为&#xff1…...

[开源] 病历自举报系统:面向临床质控的电子病历智能预审工具,用大模型扮演质疑者角色发现逻辑矛盾与缺项问题

本项目是一个专为中文电子病历(EMR)设计的轻量级质控辅助工具,核心目标是让医生在提交病历前,就能快速识别出文本中潜藏的逻辑矛盾、信息缺项、时间线错乱、数值异常和主观夸大等典型质量问题。我们不替代人工质控,也不…...

Claude Code 基础配置篇-三层配置体系详解

基础配置篇 —— Rules、Memory、Custom Instructions 三层配置体系详解系列导读: Claude Code 最让新手头疼的问题是"每次写的代码风格都不一样"、“总要重新解释项目架构”。本篇将彻底解决这个问题。通过建立三层配置体系,你可以让 Claude …...

SketchUp STL插件:5分钟快速掌握3D打印模型转换的完整免费指南

SketchUp STL插件:5分钟快速掌握3D打印模型转换的完整免费指南 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl Sk…...

专业级AI音频处理实战指南:OpenVINO插件让Audacity变身智能音频工作站 [特殊字符]

专业级AI音频处理实战指南:OpenVINO插件让Audacity变身智能音频工作站 🎵 【免费下载链接】openvino-plugins-ai-audacity A set of AI-enabled effects, generators, and analyzers for Audacity. 项目地址: https://gitcode.com/gh_mirrors/op/openv…...

AI Agent与传统RPA的融合:自动化办公的新纪元

AI Agent与传统RPA的融合:自动化办公的新纪元 副标题:探索智能自动化的未来:从规则驱动到学习型系统的演进 摘要/引言 在当今快速发展的商业环境中,企业面临着提高效率、降低成本、提升竞争力的巨大压力。自动化技术作为应对这些挑战的关键手段,已经经历了多个发展阶段。…...

键盘定制指南:从硬件到软件,开启实用又有趣的键盘使用体验!

引言 我钟情于键盘,因其是高效的人机交互接口,且充满“趣味”。用力敲击大按键,无需思索;体验精确组合的键盘快捷键带来的掌控感,皆是乐事。看着屏幕内容随操作而变,特别是那些契合自身工作方式的反馈&…...

6款靠谱降AI率平台 改写实力出众

写论文时总担心AI生成痕迹太重影响成绩?别慌,这里整理了6款超实用的论文降AI率工具,堪称应对AI痕迹问题的"得力助手"。它们能有效识别并去除AI生成特征,改写能力出色,帮你轻松降低查重率,顺利通过…...

2026年10款降AI率软件亲测:最高AI率100%直降至0.12%

2026年全球学术界对AIGC内容的监管持续收紧,多所高校及科研机构相继升级论文检测标准,AI痕迹识别技术进入全新阶段。随着知网、Turnitin等主流查重平台全面接入深度学习型AIGC检测系统,学术论文中AI生成内容的识别精度大幅提升,传…...

2026年横评10款降AI率软件:只选真正管用的那一款!

随着AI写作工具的广泛应用,论文写作和内容创作效率得到了显著提升,许多学生和职场人士都开始依赖这些工具来完成繁重的文字任务。然而,随着各大高校、期刊平台对AIGC内容检测技术的不断升级,AI生成内容的痕迹越来越容易被识别。不…...

【前端无障碍】无障碍测试:确保你的应用对所有人友好

【前端无障碍】无障碍测试:确保你的应用对所有人友好 前言 大家好,我是cannonmonster01!今天咱们来聊聊无障碍测试这个话题。无障碍设计不仅仅是开发阶段的事情,测试阶段同样重要。只有通过全面的测试,才能确保你的应用…...