news 2026/5/23 21:58:14

经典算法题详解之游乐园的迷宫(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
经典算法题详解之游乐园的迷宫(三)

解决方案

平面上有 个点,找到一条访问 个点的路径,使得路径的转角满足给定的转角序列。

题解

我们保持一个理想的状态:转向时,剩余的点都位于要求方向的一侧(即剩余点都符合当前这次的转向要求)。那么当前这次转向选择什么点,可以使下一次转向依旧满足这个理想的状态,从而可以不断的递归找下去。

若下一次转向的要求方向是 L (R),则这次转向的点中选择相对方向最右(最左)的点即可。

C++ 实现

class Solution { private: pair<int, int> Sub(pair<int, int> a, pair<int, int> b) { // 求点 a 到点 b 的向量 return make_pair(a.first - b.first, a.second - b.second); } int Cross(pair<int, int> a, pair<int, int> b) { // 求向量 a 到向量 b 的向量叉积 return a.first * b.second - a.second * b.first; } public: vector<int> visitOrder(vector< vector<int> >& points, string dir) { int n = points.size(); vector<bool> used(n, false); // 记录点的遍历情况, False未遍历 / True已遍历 vector< pair<int, int> > point; vector<int> order; // 记录返回结果 for (int i=0; i<n; ++i) { point.push_back( make_pair(points[i][0], points[i][1]) ); } // 查找最左的点作为 起始点 int start = 0; for (int i=1; i<n; ++i) { if (point[i] < point[start]) { start = i; } } used[start] = true; order.push_back(start); for (int i=0; i<dir.size(); ++i) { int next = -1; if (dir[i] == 'L') { // 转向方向为 L,选择相对方向最右的点 for (int j=0; j<n; ++j) { if (!used[j]) { if (next == -1 || Cross(Sub(point[next], point[start]), Sub(point[j], point[start])) < 0) { next = j; } } } } else if (dir[i] == 'R') { // 转向方向为 R,选择相对方向最左的点 for (int j=0; j<n; ++j) { if (!used[j]) { if (next == -1 || Cross(Sub(point[next], point[start]), Sub(point[j], point[start])) > 0) { next = j; } } } } // 返回结果加入选择的点,更新下一次转向的起点 used[next] = true; order.push_back(next); start = next; } // 添加最后一个剩余点 for (int i=0; i<n; ++i) { if (used[i] == false) { order.push_back(i); } } return order; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 19:52:20

番禺区智慧文旅平台完成MySQL平滑替换,筑牢自主可控数据底座

在数字政府建设纵深推进与信创应用从“核心系统”向“全场景覆盖”拓展的背景下&#xff0c;地方党政部门正加速治理对开源数据库的隐性依赖风险。2025年2月&#xff0c;广州市番禺区政务服务数据管理局&#xff08;以下简称“番禺区政数局”&#xff09;成功将其智慧文旅综合管…

作者头像 李华
网站建设 2026/5/23 16:07:22

智慧引领未来 智慧型浊度传感器如何重塑工业水质监测新格局

在水质监测领域&#xff0c;精度与可靠性往往是决定成败的关键因素。FST100-ZD102智慧型浊度传感器的问世&#xff0c;不仅代表着技术层面的突破&#xff0c;更象征着工业水质监测向着智能化、精准化方向迈出了坚实的一步。这款传感器凭借其卓越的性能和广泛的应用适应性&#…

作者头像 李华
网站建设 2026/5/22 18:24:18

如何快速使用中华新华字典数据库:完整入门指南

如何快速使用中华新华字典数据库&#xff1a;完整入门指南 【免费下载链接】chinese-xinhua :orange_book: 中华新华字典数据库。包括歇后语&#xff0c;成语&#xff0c;词语&#xff0c;汉字。 项目地址: https://gitcode.com/gh_mirrors/ch/chinese-xinhua 中华新华字…

作者头像 李华
网站建设 2026/5/21 5:00:49

5个理由告诉你为什么HyPlayer是网易云音乐的最佳替代方案

5个理由告诉你为什么HyPlayer是网易云音乐的最佳替代方案 【免费下载链接】HyPlayer 仅供学习交流使用 | 第三方网易云音乐播放器 | A Netease Cloud Music Player 项目地址: https://gitcode.com/gh_mirrors/hy/HyPlayer 还在为官方网易云音乐的功能限制和广告困扰吗&a…

作者头像 李华
网站建设 2026/5/23 20:36:36

聚焦AI!亚马逊云科技re:Invent 2025中国行!

2025年12月1—5日&#xff0c;亚马逊云科技re:Invent 2025在拉斯维加斯呈现了Agentic AI重塑云计算的关键进展&#xff0c;Agentic AI不再只是概念&#xff0c;而是正在驱动企业应用、开发流程与业务模式的深刻变化。为了帮助中国开发者、架构师、技术团队更系统地理解这场技术…

作者头像 李华