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

2023-12-11 LeetCode每日一题(最小体力消耗路径)

2023-12-11每日一题

一、题目编号

1631. 最小体力消耗路径

二、题目链接

点击跳转到题目位置

三、题目描述

你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往 上,下,左,右 四个方向之一移动,你想要找到耗费 体力 最小的一条路径。

一条路径耗费的 体力值 是路径上相邻格子之间 高度差绝对值最大值 决定的。

请你返回从左上角走到右下角的最小 体力消耗值
示例 1:
在这里插入图片描述

示例 2:
在这里插入图片描述

示例 3:
在这里插入图片描述
提示:

  • rows == heights.length
  • columns == heights[i].length
  • 1 <= rows, columns <= 100
  • 1 <= heights[i][j] <= 106

四、解题代码

int dir[4][2] = {{-1, 0},{1, 0},{0, -1},{0, 1}
};
const int maxn = 101;bool bfs(int height, vector<vector<int>>& heights, int m, int n){int hash[maxn * maxn + 100 + 6];memset(hash, 0, sizeof(hash));queue<int> path;path.push(0 * 100 + 0);hash[0 * 100 + 0] = 1;while(!path.empty()){int tmp = path.front();path.pop();int x = tmp / maxn;int y = tmp % maxn;if(x == m - 1 && y == n - 1){return true;}for(int i = 0; i < 4; ++i){int tx = x + dir[i][0];int ty = y + dir[i][1];if(tx >= m || ty >= n || tx < 0 || ty < 0){continue;}if(hash[tx * maxn + ty] == 0 && abs(heights[tx][ty] - heights[x][y]) <= height){hash[tx * maxn + ty]=1;path.push(tx * maxn + ty);}}}
return false;
}class Solution {
public:int minimumEffortPath(vector<vector<int>>& heights) {int left = 0, right = 999999;int ans = 0;int m = heights.size();int n = heights[0].size();while(left <= right){int mid = (left+right) >> 1;if(bfs(mid, heights, m, n) == true){ans = mid;right = mid-1;}else{left = mid + 1;}}return left;}
};

五、解题思路

(1) 利用图的四方向遍历。

(2) 二分答案来求解。

(3) 广度优先搜索来判断答案可不可行。

相关文章:

2023-12-11 LeetCode每日一题(最小体力消耗路径)

2023-12-11每日一题 一、题目编号 1631. 最小体力消耗路径二、题目链接 点击跳转到题目位置 三、题目描述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格…...

PID为1的僵尸进程的产生及清理

父进程PID为1的僵尸进程通常是由init系统&#xff08;在Linux系统中通常是systemd&#xff09;产生的。这种情况通常发生在以下几种情况&#xff1a; 子进程结束&#xff0c;但其父进程没有正确地调用wait()或waitpid()系统调用来获取子进程的退出状态。在这种情况下&#xff0…...

043、循环神经网络

之——RNN基础 杂谈 第一个对于序列模型的网络&#xff0c;RNN。 正文 1.潜变量自回归模型 潜变量总结过去的信息&#xff0c;再和当前信息一起结合出新的信息。 2.RNN 循环神经网络将观察作为x&#xff0c;与前层隐变量结合得到输出 其中Whh蕴含了整个模型的时序信息&#xf…...

node使用nodemonjs自动启动项目

安装 npm install -g nodemon使用方法 我这里用的是electron项目为例package.json配置 {"name": "my-electron-app","version": "1.0.0","description": "Hello World!","main": "main.js"…...

Ts自封装WebSocket心跳重连

WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;允许客户端和服务器之间进行双向实时通信。 所谓心跳机制&#xff0c;就是在长时间不使用WebSocket连接的情况下&#xff0c;通过服务器与客户端之间按照一定时间间隔进行少量数据的通信来达到确认连接稳定的手…...

【unity学习笔记】捏人+眨眼效果+口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型&#xff08;.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。&#xff08;VRM-0.116.0_0f6c&#xff09; 3.将univrm导入到工程中&#xff08;assets&#xff09;。 三…...

动态规划 | 最长公共子序列问题

文章目录 最长公共子序列题目描述问题分析程序代码复杂度分析 最短编辑距离题目描述问题分析程序代码复杂度分析 编辑距离题目描述输入格式输出格式 问题分析程序代码 最长公共子序列 题目描述 原题链接 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共…...

RuntimeError: The NVIDIA driver on your system is too old.

【报错】使用 AutoDL 复现实验时遇到 RuntimeError: The NVIDIA driver on your system is too old (found version 11070). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternativ…...

Java开发过程中的幂等性问题

幂等性问题&#xff1a; 1. 有时我们在填写某些 form表单 时&#xff0c;保存按钮不小心快速点了两次&#xff0c;表中竟然产生了两条重复的数据&#xff0c;只是id不一样。 2. 我们在项目中为了解决 接口超时 问题&#xff0c;通常会引入了 重试机制 。第一次请求接口超时了…...

基于Docker的软件环境部署脚本,持续更新~

使用时CtrlF搜索你想要的环境&#xff0c;如果没有你想要的环境&#xff0c;可以评论留言&#xff0c;会尽力补充。 本文提供的部署脚本默认参数仅适合开发测试&#xff0c;请根据实际情况调节参数。 数据库 MySQL version: 3.9 services:mysql:image: mysql:8.0.35container…...

C#上位机与欧姆龙PLC的通信08----开发自己的通讯库读写数据

1、介绍 前面已经完成了7项工作&#xff1a; C#上位机与欧姆龙PLC的通信01----项目背景-CSDN博客 C#上位机与欧姆龙PLC的通信02----搭建仿真环境-CSDN博客 C#上位机与欧姆龙PLC的通信03----创建项目工程-CSDN博客 C#上位机与欧姆龙PLC的通信04---- 欧姆龙plc的存储区 C#上…...

【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程

探讨Redis 6.0为何需要启用多线程 背景介绍开启多线程多线程的CPU核心配置IO多线程模式单线程处理方式多线程处理方式 为什么要开启多线程&#xff1f;充分利用多核CPU提高网络I/O效率响应现代应用需求 多线程实现启用多线程 最后总结 背景介绍 在Redis 6.0版本中&#xff0c;…...

simulink代码生成(六)——多级中断的配置

假如系统中存在多个中断&#xff0c;需要合理的配置中断的优先级与中断向量表&#xff1b;在代码生成中&#xff0c;要与中断向量表对应&#xff1b;中断相关的知识参照博客&#xff1a; DSP28335学习——中断向量表的初始化_中断向量表什么时候初始化-CSDN博客 F28335中断系…...

【Minikube Prometheus】基于Prometheus Grafana监控由Minikube创建的K8S集群

文章目录 1. 系统信息参数说明2. Docker安装3. minikube安装4. kubectl安装5. Helm安装6. 启动Kubernetes集群v1.28.37. 使用helm安装Prometheus8. 使用helm安装Grafana9. Grafana的Dashboard设定10. 设定Prometheus数据源11. 导入Kubernetes Dashboard12. 实验过程中的常见问题…...

无需翻墙|Stable Diffusion WebUI 安装|AI绘画

前言 最近终于有机会从围墙里往外看&#xff0c;了解到外面的世界已经有了天翻地覆的变化&#xff0c;感叹万千&#xff0c;笔者在本地mac&#xff0c;windows&#xff0c;linux&#xff0c;docker部署了不下20遍后&#xff0c;整理出来的linux极简避坑安装方案&#xff0c;供…...

在FC中手工创建虚拟机模板

1、Linux去除个性化信息 &#xff08;1&#xff09;编辑网卡配置文件&#xff0c;只保留以下内容&#xff08;以RHEL 7为例&#xff09; &#xff08;2&#xff09;清除主机密钥信息&#xff08;开机会自动生成&#xff09; &#xff08;3&#xff09;清除Machine ID&#xff…...

OpenSSL provider

提供者 标准提供者默认提供者传统提供者FIPS 提供者基本提供者空提供者加载提供者 标准提供者 提供者是算法实现的容器。每当通过高级别 API 使用加密算法时&#xff0c;都会选择一个提供者。实际上是由该提供者实现执行所需的工作。OpenSSL 自带了五个提供者。在未来&#…...

pandas处理双周数据

处理文件题头格式 部门名称 年度名称 季节名称 商品名称 商品代码 品牌名称 品类名称 颜色名称 商店名称 0M 1L 1XL 27 28 29 2XL 30 31 32 33 3XL 4XL 5XL 6XL S 均1.导入包 导入源 pip install openpyxl -i https://pypi.doubanio.com/simple pip install pandas -i https…...

2023结婚成家,2024借势起飞

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…...

linux SHELL语句

shell编程 shell编程 一、初识shell 程序 语言 编程语言 自然语言 汉语 英语 计算机语言 c语言cjava php python go shell 编译型语言 c c java解释型语言 php python bash (不能闭源&#xff0c;开发难度低) 编译型语言:运行编译型语言是相对于解释型语言存在的&#xff…...

【仅开放72小时】ElevenLabs德文语音生成高级提示词库(含137个Schwäbisch/Bavarian方言指令模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs德文语音生成技术概览与方言适配价值 ElevenLabs 的德语语音合成引擎基于多说话人、多风格的端到端扩散模型架构&#xff0c;支持高保真、低延迟的实时语音生成。其德语语音库覆盖标准高地德…...

ElevenLabs菲律宾语语音突然变卡顿?紧急排查清单:DNS劫持、Token过期、区域节点错配(含curl诊断脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs菲律宾语语音突然变卡顿&#xff1f;紧急排查清单&#xff1a;DNS劫持、Token过期、区域节点错配&#xff08;含curl诊断脚本&#xff09; 当ElevenLabs API在调用菲律宾语&#xff08;fil-P…...

Altium Designer20 从零到一:新手必备的安装与核心功能上手指南

1. Altium Designer20安装全攻略 第一次接触Altium Designer20&#xff08;简称AD20&#xff09;时&#xff0c;我和大多数电子设计新手一样&#xff0c;面对这个专业软件既兴奋又忐忑。记得当时为了完成课程设计&#xff0c;我在宿舍折腾了整整一个下午才搞定安装。现在回想起…...

航空发电机综合测试系统设计【附代码】

✨ 长期致力于航空发电机、测试系统、控制方法、LabVIEW研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;设计直流拖动调速系统的双闭环自适应模糊PID控…...

Ovito模块在Python环境下的兼容性排查与实战配置指南

1. 为什么你的Ovito模块总是安装失败&#xff1f; 每次看到那个红色的报错提示&#xff0c;我都想砸键盘。去年给实验室配LAMMPS后处理环境时&#xff0c;光Ovito模块就折腾了我三天。后来才发现&#xff0c;90%的问题都出在Python环境上。Windows系统里32位和64位Python就像两…...

独立开发者如何利用Taotoken应对不同客户项目的多样化模型需求

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何利用Taotoken应对不同客户项目的多样化模型需求 作为一名独立开发者或小型工作室的成员&#xff0c;你很可能同时维…...

光通信风口已至:芯片巨头加码,产业链满产满销,光进铜退成必然趋势?

英伟达聚焦光通信&#xff0c;产业链投入持续加码今年3月份的英伟达GPU技术大会上&#xff0c;英伟达创始人黄仁勋用了相当长的篇幅谈及光通信。这是因为&#xff0c;英伟达最新一代GPU架构中&#xff0c;芯片之间通过NVLink协议互联&#xff0c;双向带宽达到1.8TB/s。数据中心…...

2026 电子招投标全流程操作指南:环境搭建→签章→上传→解密全避坑

据安华招标 2025 年度电子招投标技术白皮书显示&#xff0c;全国公共资源交易平台电子标覆盖率已达98.7%&#xff0c;但因纯技术操作失误导致的废标率仍高达22%。其中环境配置错误、签章失效、解密失败三大问题&#xff0c;占所有技术类废标的85% 以上。很多企业投入数月打磨标…...

3分钟完成B站缓存视频转换:m4s-converter完整使用指南

3分钟完成B站缓存视频转换&#xff1a;m4s-converter完整使用指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站视频下架后&…...

PXIe-9150嵌入式控制器:构建高集成度自动化测试系统的核心

1. 项目概述&#xff1a;从一块板卡到一套系统最近在整理实验室的测试设备&#xff0c;翻出来几台老旧的PXI机箱&#xff0c;想着怎么把它们重新利用起来。正好手头有个新项目&#xff0c;需要搭建一套多通道、高精度的数据采集与实时处理系统&#xff0c;传统的工控机加板卡的…...