LeetCode刷题 day28

发布时间:2026/7/13 6:59:07

LeetCode刷题 day28
目录1.穿越网格图的安全路径2. 格雷编码1.穿越网格图的安全路径给你一个 m x n 的二进制矩形 grid 和一个整数 health 表示你的健康值。你开始于矩形的左上角 (0, 0) 你的目标是矩形的右下角 (m - 1, n - 1) 。你可以在矩形中往上下左右相邻格子移动但前提是你的健康值始终是 正数 。对于格子 (i, j) 如果 grid[i][j] 1 那么这个格子视为 不安全 的会使你的健康值减少 1 。如果你可以到达最终的格子请你返回 true 否则返回 false 。注意 当你在最终格子的时候你的健康值也必须为正数。示例 1输入grid [[0,1,0,0,0],[0,1,0,1,0],[0,0,0,1,0]], health 1输出true解释沿着下图中灰色格子走可以安全到达最终的格子。示例 2输入grid [[0,1,1,0,0,0],[1,0,1,0,0,0],[0,1,1,1,0,1],[0,0,1,0,1,0]], health 3输出false解释健康值最少为 4 才能安全到达最后的格子。示例 3输入grid [[1,1,1],[1,0,1],[1,1,1]], health 5输出true解释沿着下图中灰色格子走可以安全到达最终的格子。任何不经过格子 (1, 1) 的路径都是不安全的因为你的健康值到达最终格子时都会小于等于 0 。思路广度优先搜索在搜索时遇到单元格为0的格子放入队首遇单元格为1的格子放队尾。并且在放入队列之前先判断若到当前格子路径的消费已经超过health则剪枝不放入队列中否则若到当前格子的消费小于目前的消费则更新格子的路径消费并放入队列classSolution{privatestaticint[][]DIRS{{0,1},{0,-1},{1,0},{-1,0}};publicbooleanfindSafeWalk(ListListIntegergrid,inthealth){//宽度优先遍历intngrid.size(),mgrid.get(0).size();int[][]disnewint[n][m];for(int[]row:dis){Arrays.fill(row,Integer.MAX_VALUE);}//存放下标Dequeint[]qnewArrayDeque();q.offerFirst(newint[]{0,0});dis[0][0]grid.get(0).get(0);//当前格子已计算计算新的格子while(!q.isEmpty()){int[]curq.pollFirst();intcxcur[0],cycur[1];//只要到终点肯定是最短距离//每次添加时都是将小的放前面大的放后面因此双端队列整体是升序的if(cxn-1cym-1){returntrue;}for(int[]dir:DIRS){intxcxdir[0],ycydir[1];if(x0||xn||y0||ym){continue;}intcostdis[cx][cy]grid.get(x).get(y);if(costhealth){continue;}if(costdis[x][y]){dis[x][y]cost;if(grid.get(x).get(y)0){q.offerFirst(newint[]{x,y});}else{q.offerLast(newint[]{x,y});}}}}returnfalse;}}时间复杂度O ( m ∗ n ) O(m*n)O(m∗n)m,n分别是grid的行和列空间复杂度O ( m ∗ n ) O(m*n)O(m∗n)2. 格雷编码n 位格雷码序列 是一个由 2n 个整数组成的序列其中每个整数都在范围 [0, 2n - 1] 内含 0 和 2n - 1第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n 返回任一有效的 n 位格雷码序列 。示例 1输入n 2输出[0,1,3,2]解释[0,1,3,2] 的二进制表示是 [00,01,11,10] 。00 和 01 有一位不同01 和 11 有一位不同11 和 10 有一位不同10 和 00 有一位不同[0,2,3,1] 也是一个有效的格雷码序列其二进制表示是 [00,10,11,01] 。00 和 10 有一位不同10 和 11 有一位不同11 和 01 有一位不同01 和 00 有一位不同示例 2输入n 1输出[0,1]思路# 以n2为例假设已知2位格雷码序列求3位格雷码序列 #00-01-11-10# 先首尾补零序列仍不变 #000-001-011-010# 然后在首位补1#100-101-111-110# 这两个子序列的1的个数关系如下 #000-001-011-010#^|#|V#100-101-111-110# 因此只需保持n-1位格雷码序列不变将原序列首位补1并翻转即可得到n位格雷码序列classSolution{publicListIntegergrayCode(intn){ListIntegeransnewArrayList(1n);ans.add(0);for(inti1;in;i){intOr1(i-1);intmans.size();for(intjm-1;j0;j--){ans.add(ans.get(j)|Or);}}returnans;}}时间复杂度O ( 2 n ) O(2^n)O(2n)空间复杂度O ( 1 ) O(1)O(1)最终答案所需空间不考虑

相关新闻

论文降重效率翻倍攻略:工具组合使用法,半天搞定降重 + 润色全流程

论文降重效率翻倍攻略:工具组合使用法,半天搞定降重 + 润色全流程

2026/7/12 11:42:10

Gradpaper-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/课程论文。Gradpaper论文智能生成软件,10分钟生成万字毕业论文、期刊论文、文献综述、PPT,Agc查重、降重报告、文献资料。只需一个标题,从开题报告到答辩一键生成软件&a…

三轴运动追踪方案:WSEN-ISDS与TM4C129XKCZAD硬件实现

三轴运动追踪方案:WSEN-ISDS与TM4C129XKCZAD硬件实现

2026/7/12 4:32:39

1. 项目概述:三轴运动追踪的硬件选型与实现 在工业自动化和消费电子领域,精确测量物体在三维空间中的运动和姿态一直是个经典需求。这次我选用Wrth Elektronik的WSEN-ISDS三轴加速度计搭配TI的TM4C129XKCZAD微控制器,搭建了一套完整的空间运动…

WSEN-ISDS与PIC24FJ64GB004运动追踪开发指南

WSEN-ISDS与PIC24FJ64GB004运动追踪开发指南

2026/7/12 22:01:18

1. 项目背景与硬件选型解析 在运动追踪领域,同时捕捉角运动和线性运动的需求正变得越来越普遍。WSEN-ISDS(型号2536030320001)这款三轴MEMS惯性传感器与PIC24FJ64GB004微控制器的组合,为开发者提供了一个高性价比的解决方案。 WS…

Pandas melt详解:宽表转长表的核心原理与实战避坑指南

Pandas melt详解:宽表转长表的核心原理与实战避坑指南

2026/7/13 6:55:50

1. 项目概述:为什么你总在数据清洗时卡在“宽表变长表”这一步?“Understanding Pandas Melt — pd.melt()”这个标题看起来像教科书里的一个函数说明,但如果你真在做数据分析、报表开发或机器学习特征工程,就会发现它根本不是“理…

基于TPA3128D2与PIC18F86J50的高保真音频系统设计

基于TPA3128D2与PIC18F86J50的高保真音频系统设计

2026/7/13 6:55:50

1. 项目背景与核心组件介绍作为一名电子音频爱好者,我最近完成了一个基于TPA3128D2功放芯片和PIC18F86J50微控制器的音频系统项目。这个组合能够提供高达30W的立体声输出,失真度低于0.1%,信噪比超过100dB,在实际测试中确实带来了令…

【实证分析】产业型战略股东数据(含代码)2007-2024年

【实证分析】产业型战略股东数据(含代码)2007-2024年

2026/7/13 6:55:50

数据简介:战略投资者是 “具有同行业或相关行业较强的战略性资源, 与上市公司谋求双方协调互补的长期共同战略利益……能帮助上市公司显著提高公司质量和内在价值” 的投资者。 数据来源:上市公司年报 时间范围:2007-2024年 相…

2026年成都超薄灯箱品牌口碑排行榜,本地靠谱供应商盘点

2026年成都超薄灯箱品牌口碑排行榜,本地靠谱供应商盘点

2026/7/13 6:55:50

在商业视觉呈现领域,成都超薄灯箱早已不只是个发光盒子,它直接关联着门店坪效、品牌辨识度,以至夜间引流效果。这几年我陆续跟进过数十个落地项目,从连锁便利店到精品买手店,发现一套靠谱的超薄灯箱方案,往…

工业负载控制方案:TPD2017FN与PIC18F85K22实战解析

工业负载控制方案:TPD2017FN与PIC18F85K22实战解析

2026/7/13 6:55:50

1. 工业负载控制的特殊挑战与方案选型在工业自动化现场,负载控制从来都不是简单的开关操作。我曾在一条食品包装生产线上亲眼目睹:当电磁阀(典型感性负载)频繁动作时,产生的反电动势导致整个控制柜的PLC不断重启&#…

从USACO铜组题解析字符串相邻交换配对与哈希表高效算法

从USACO铜组题解析字符串相邻交换配对与哈希表高效算法

2026/7/13 6:45:49

1. 项目概述:从一道USACO铜组题看信奥刷题的核心价值最近在带学生刷信奥题,正好碰到一道挺有意思的USACO 2024年12月铜组的新题——P11451 “It‘s Mooin’ Time B”。这道题本身难度不算高,但非常典型,它完美地体现了USACO铜组乃…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

卡梅德生物技术快报|纯化重组蛋白:变异链球菌 SepM 截短蛋白载体构建、诱导优化与纯化重组蛋白全套参数方案

卡梅德生物技术快报|纯化重组蛋白:变异链球菌 SepM 截短蛋白载体构建、诱导优化与纯化重组蛋白全套参数方案

2026/7/13 0:05:25

1 研究背景与现存技术痛点(提出问题)在口腔微生物分子机制研究中,SepM 蛋白酶是调控变异链球菌群体感应、致龋菌素合成的核心功能蛋白,体外功能验证、抗体开发均依赖高纯度可溶性 SepM 蛋白。当前原核表达体系针对 SepM 存在三大技…

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

2026/7/13 0:05:25

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

2026/7/13 0:05:25

研究痛点提出(提出问题)重组肠激酶是融合标签切除核心工具酶,当前原核表达体系存在三大标准化难题,直接阻碍可复现的蛋白质分离纯化流程搭建:Trx、GST、单 SUMO 标签融合产物绝大多数为包涵体,沉淀占比超 9…