Kimi LeetCode LCP 15. 游乐园的迷宫 Python3实现

发布时间:2026/8/23 19:43:17

Kimi    LeetCode LCP 15. 游乐园的迷宫 Python3实现
LCP 15. 游乐园的迷宫 — Python3 实现题目理解平面上有 N 个点需要找到一条访问所有 N 个点的路径使得路径在每个顶点的转角方向满足给定的 direction 字符串L 表示左转R 表示右转。不存在三点共线的情况。核心思路贪心 向量叉积官方题解的贪心策略是每一步选择最极端的点使得剩余所有未访问的点都位于转向要求的那一侧。这样可以保证后续始终有解。具体实现1. 起点选择选横坐标最小的点作为起点保证初始方向可控2. 叉积判断方向对于向量 a→b 和 a→c叉积 cross (b-a) × (c-a)- cross 0c 在 a→b 的左侧逆时针- cross 0c 在 a→b 的右侧顺时针3. 贪心选点- 若 direction[i] L下一步要左转则当前选择最右侧的点叉积最大即其他点都在该点左侧- 若 direction[i] R下一步要右转则当前选择最左侧的点叉积最小即其他点都在该点右侧Python3 代码pythonfrom typing import Listclass Solution:def visitOrder(self, points: List[List[int]], direction: str) - List[int]:n len(points)visited [False] * nans []# 辅助函数计算向量 a-bdef vec(a, b):return [b[0] - a[0], b[1] - a[1]]# 辅助函数计算向量叉积 (a x b)def cross(a, b):return a[0] * b[1] - a[1] * b[0]# 1. 选择横坐标最小的点作为起点保证凸包性质start 0for i in range(n):if points[i][0] points[start][0]:start ians.append(start)visited[start] True# 2. 根据 direction 贪心选择下一个点for d in direction:nxt -1if d L:# 下一步要左转当前选最右侧的点叉积最大for j in range(n):if not visited[j]:if nxt -1 or cross(vec(points[start], points[j]),vec(points[start], points[nxt])) 0:nxt jelse: # d R# 下一步要右转当前选最左侧的点叉积最小for j in range(n):if not visited[j]:if nxt -1 or cross(vec(points[start], points[j]),vec(points[start], points[nxt])) 0:nxt jans.append(nxt)visited[nxt] Truestart nxt# 3. 最后一个未访问的点加入答案for i in range(n):if not visited[i]:ans.append(i)return ans复杂度分析- 时间复杂度O(N^2)每次选择下一个点需要遍历所有未访问点- 空间复杂度O(N)用于访问标记数组和答案数组关键说明- 叉积的符号决定了相对位置cross(vec(start, j), vec(start, nxt)) 0 表示 j 在 start→nxt 的左侧即 nxt 相对更靠右- 由于不存在三点共线叉积不会为 0无需处理共线情况- 起点选最左侧点是为了确保初始步可以构造出满足条件的凸包边界

相关新闻

从状态机到动态密码:揭秘“知道密码也打不开”的逻辑锁原理与Python实现

从状态机到动态密码:揭秘“知道密码也打不开”的逻辑锁原理与Python实现

2026/8/23 19:43:17

最近在逛技术社区时,看到一个挺有意思的讨论:一个号称“老外设计的密码锁”,其核心逻辑是“即使你知道密码,也打不开”。这立刻引起了我的好奇心。作为一名开发者,我本能地想到,这背后可能不是简单的机械结…

模糊综合评价:从模糊数学到精准决策的实战指南

模糊综合评价:从模糊数学到精准决策的实战指南

2026/8/23 19:43:17

1. 项目概述:当“模糊”成为精准决策的利器 在项目评估、人才选拔、产品满意度调研这些场景里,我们常常会遇到一个头疼的问题:评价标准本身就不清晰。比如,评价一个员工的“工作态度”,什么叫“好”?什么叫…

云服务器选型与安全配置实战:从核心参数到生产环境部署

云服务器选型与安全配置实战:从核心参数到生产环境部署

2026/8/23 19:33:16

在实际项目部署和线上服务搭建过程中,服务器选型是绕不开的第一步。面对市场上琳琅满目的云服务器产品,尤其是那些标榜“低价高配”、“高防”、“免备案”的促销信息,开发者很容易陷入困惑:这些产品到底靠不靠谱?它们…

层次分析法(AHP)实战:从多准则决策到权重计算完整指南

层次分析法(AHP)实战:从多准则决策到权重计算完整指南

2026/8/23 20:43:19

1. 项目概述:从“拍脑袋”到“算脑袋”的决策利器 在数学建模竞赛或者日常的复杂决策中,我们常常面临一个困境:面对多个相互关联、甚至有些“虚无缥缈”的准则(比如评价一个城市是否宜居,要考虑经济、环境、教育、医疗…

数据结构核心考点与易错点全解析:408考研与大厂面试必备

数据结构核心考点与易错点全解析:408考研与大厂面试必备

2026/8/23 20:43:19

这次我们来看一个计算机考研和校招面试中绕不开的核心考点:数据结构。无论是准备 408 统考,还是应对大厂技术面,数据结构都是检验基本功的试金石。很多同学在复习时容易陷入“一看就会,一写就废”的困境,或者对一些经典…

嵌入式硬件核心:总线与存储器的原理、选型与实战调试

嵌入式硬件核心:总线与存储器的原理、选型与实战调试

2026/8/23 20:43:19

1. 项目概述:从零开始认识嵌入式硬件平台刚入行那会儿,听到“嵌入式系统硬件平台”这个词,总觉得它庞大又复杂,充满了各种看不懂的芯片、密密麻麻的走线和一堆英文缩写。后来自己动手焊过板子、调过驱动、追过总线上的异常信号&am…

JavaWeb环境配置与服务器部署全链路实战指南

JavaWeb环境配置与服务器部署全链路实战指南

2026/8/23 20:43:19

1. 从零到一:为什么你的JavaWeb环境总配不对?每次看到新手朋友在群里问“我的Tomcat怎么起不来”、“数据库连不上”、“项目部署后404”,我都能回想起自己刚入行时,对着满屏的报错信息手足无措的样子。JavaWeb环境配置&#xff0…

以太网核心技术深度解析:从帧结构到实战排障

以太网核心技术深度解析:从帧结构到实战排障

2026/8/23 20:43:19

1. 项目概述:为什么今天还要聊“以太网”?你可能觉得“以太网”这个词太老了,老到像是上个世纪的古董。确实,从1973年施乐帕克实验室的梅特卡夫博士画出那张著名的草图开始,以太网已经走过了半个世纪。但恰恰是这种“古…

具身智能数据采集:从多模态同步到低成本工程实践

具身智能数据采集:从多模态同步到低成本工程实践

2026/8/23 20:33:19

如果你正在关注具身智能(Embodied AI)这个赛道,或者正在尝试构建自己的机器人、智能体项目,那么最近半年,你很可能被一个词反复“折磨”——数据。是的,模型、算法、算力,这些概念我们已经讨论了…

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

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

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

2026/8/22 2:02:26

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

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

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

2026/8/22 4:13:47

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

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

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

2026/8/22 1:32:34

告别游戏崩溃: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…