Kimi LeetCode LCP 35. 电动车游城市 Python3实现

发布时间:2026/8/26 19:16:42

Kimi    LeetCode LCP 35. 电动车游城市 Python3实现
以下是 LCP 35. 电动车游城市 的 Python3 实现采用 分层图最短路 Dijkstra 算法。---解题思路这是一道经典的分层图最短路问题。核心思想是将状态定义为 (城市, 电量) 二元组然后在这个扩展的状态空间上运行 Dijkstra 算法 。状态空间- 节点(城市 i, 电量 c)其中 0 c cnt- 充电边(i, c) → (i, c1)权重 charge[i]充 1 单位电的时间- 行驶边(i, c) → (j, c-w)权重 w行驶距离 时间要求 c w为什么第一次到达终点就是最优解因为 Dijkstra 按总时间从小到大扩展第一次从优先队列中取出终点状态时即为全局最短时间。---Python3 代码pythonimport heapqfrom typing import Listclass Solution:LCP 35. 电动车游城市小明的电动车电量充满时可行驶距离为 cnt每行驶 1 单位距离消耗 1 单位电量且花费 1 单位时间。地图上共有 N 个景点景点编号为 0 ~ N-1。paths 表示城市间的双向通路及距离。初始状态电动车电量为 0。每个城市都设有充电桩charge[i] 表示第 i 个城市每充 1 单位电量需要花费的单位时间。返回小明最少需要花费多少单位时间从起点城市 start 抵达终点城市 end。算法分层图最短路 Dijkstra状态(城市, 电量) 二元组def electricCarPlan(self, paths: List[List[int]], cnt: int, start: int, end: int, charge: List[int]) - int:n len(charge)# 建图邻接表graph [[] for _ in range(n)]for u, v, w in paths:graph[u].append((v, w))graph[v].append((u, w))# dist[i][c] 到达城市 i 且剩余电量为 c 时的最小时间INF float(inf)dist [[INF] * (cnt 1) for _ in range(n)]dist[start][0] 0# Dijkstra 优先队列(总时间, 城市, 电量)pq [(0, start, 0)]while pq:cost, city, power heapq.heappop(pq)# 如果已经找到更优解跳过if cost dist[city][power]:continue# 到达终点直接返回Dijkstra 保证第一次到达终点就是最优解if city end:return cost# 操作1在当前城市充电电量1if power cnt:new_cost cost charge[city]if new_cost dist[city][power 1]:dist[city][power 1] new_costheapq.heappush(pq, (new_cost, city, power 1))# 操作2前往相邻城市电量减少时间增加for nxt, w in graph[city]:if power w: # 电量足够到达下一个城市new_power power - wnew_cost cost wif new_cost dist[nxt][new_power]:dist[nxt][new_power] new_costheapq.heappush(pq, (new_cost, nxt, new_power))# 题目保证所有城市相互可以到达所以不会执行到这里return -1---复杂度分析- 时间复杂度O((N \times C M \times C) \log(N \times C))其中 N 为城市数C cnt 为最大电量M 为路径数。每个状态最多被扩展一次每次扩展涉及充电和行驶两种操作。- 空间复杂度O(N \times C M)用于存储距离数组、优先队列和邻接表。---示例验证示例 输入 输出 解释1 paths[[1,3,3],[3,2,1],[2,1,3],[0,1,4],[3,0,5]], cnt6, start1, end0, charge[2,10,4,1] 43 路线 1→3→0充电 3×10 5×1 35行驶 3 5 82 paths[[0,4,2],[4,3,5],[3,0,5],[0,1,5],[3,2,4],[1,2,8]], cnt8, start0, end2, charge[4,1,1,3,2] 38 路线 0→4→3→2充电 4×2 2×8 3×1 27行驶 2 5 4 11---下载文件[lcp35_electric_car_plan.py](sandbox:///mnt/agents/output/lcp35_electric_car_plan.py)

相关新闻

有限 GBP 对滤波器的影响

有限 GBP 对滤波器的影响

2026/8/26 19:16:42

在对有源滤波器的研究中,我们假设运算放大器是理想的,这样我们就可以不用考虑运算放大器的特性,而是只研究滤波器的响应。理想情况(简化模型):​ 在最基础的分析中,通常假设运算放大器是“理想”…

[光学原理与应用-545]:光的十层理解:从表入里,由浅入深

[光学原理与应用-545]:光的十层理解:从表入里,由浅入深

2026/8/26 19:16:42

第一层:光的感知 —— 明暗与颜色最表层的理解。光让我们看见世界:白天与黑夜、影子、蓝天、彩虹、火焰。这是所有动物对光的本能认知 —— 光就是 "照亮",颜色就是光的 "样子"。这一层不涉及任何物理模型,只…

【中国方言题库|16】HarmonyOS ArkTS 多设备布局实战:适配手机、平板和 PC/2in1 的窗口变化

【中国方言题库|16】HarmonyOS ArkTS 多设备布局实战:适配手机、平板和 PC/2in1 的窗口变化

2026/8/26 19:16:42

HarmonyOS 应用做多设备适配,最容易出现一种“看起来已经适配”的假象:项目里有 sm、md、lg 三档断点,也写了底部导航和侧边导航,但真正改变窗口宽度时,外层导航没有切换;部分内容页已经变成三列&#xff0…

舞台直拍视频自动化处理:从FFmpeg转码到多平台分发全链路解析

舞台直拍视频自动化处理:从FFmpeg转码到多平台分发全链路解析

2026/8/26 20:36:45

舞台直拍视频背后,是从现场收音到云端分发的完整技术链路 你可能在短视频平台刷到过这样的视频:LIVEHOUSE 舞台上,歌手在聚光灯下唱完整首歌,画面全程稳稳对准一个人,声音干净,镜头不抖,弹幕里刷…

DPJ-82基于STM32单片机蓝牙智能语音识别分类垃圾桶设计 火灾预防桶满报警自动照明垃圾桶系统

DPJ-82基于STM32单片机蓝牙智能语音识别分类垃圾桶设计 火灾预防桶满报警自动照明垃圾桶系统

2026/8/26 20:36:45

1、前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉洪核学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设&#xf…

聚苯乙烯微球制备方法详解:从乳液聚合到分散聚合的工程实践

聚苯乙烯微球制备方法详解:从乳液聚合到分散聚合的工程实践

2026/8/26 20:36:45

1. 从“塑料泡沫”到精密微球:为什么PS微球制备值得深究? 提到聚苯乙烯,很多人第一反应是那种白色、轻飘飘的泡沫塑料,也就是我们常说的“泡沫箱”或“泡沫板”。这确实是聚苯乙烯(PS)最广为人知的一种形态…

基于Matlab的配电网鲁棒动态重构:模型、算法与工程实现

基于Matlab的配电网鲁棒动态重构:模型、算法与工程实现

2026/8/26 20:36:45

1. 项目概述与核心价值最近在复现一篇关于配电网鲁棒动态重构的EI期刊论文,这个方向在分布式电源大规模接入的背景下,热度一直不减。很多同学在做毕设或者研究时,都会遇到类似的问题:模型建好了,算法也写了&#xff0c…

NGINX编译安装全攻略:从源码到生产环境的实战指南

NGINX编译安装全攻略:从源码到生产环境的实战指南

2026/8/26 20:36:45

1. 从“下载”到“跑起来”:一个完整的NGINX安装视角 每次看到“NGINX安装手册”这个标题,很多人的第一反应可能就是去官网下载一个tar.gz包,然后执行那经典的 ./configure && make && make install 三步曲。但如果你真的这…

Greenplum 日常维护命令

Greenplum 日常维护命令

2026/8/26 20:26:45

Greenplum 日常维护 1. 数据库启动:gpstart 常用可选参数: -a : 直接启动,不提示终端用户输入确认 -m:只启动master 实例,主要在故障处理时使用 2. 数据库停止:gpstop: 常用可选参数&#…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/26 1:50:39

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/26 1:49:16

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/26 17:50:58

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

2026/8/26 0:05:45

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

Hermes接入团队协作后,我推翻了三个效率假设

Hermes接入团队协作后,我推翻了三个效率假设

2026/8/26 0:05:45

聊《Hermes真能提效吗?先看流程里最慢的那一步》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要团队把 Hermes 接进项目三个月后,交付速度没有提升反而慢了。复盘后发现,最先…

免费AI大模型调教指南:打造专属网文写作助手

免费AI大模型调教指南:打造专属网文写作助手

2026/8/26 0:05:45

1. 先搞清楚“AI小说扩展模式”到底能帮你做什么如果你是一个刚开始写网文、或者卡在L3级别以下的作者,最头疼的可能是情节推进不下去、人物对话干瘪,或者世界观设定不够丰满。自己对着空白文档硬憋,效率很低。这时候,一个能理解你…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/26 18:07:30

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/26 17:57:52

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…