[Python]OD算法在OD实际运用转化参考清单

OD算法清单

算法 你的掌握程度 ADAS应用场景
合并区间 熟练 传感器视野重叠区合并、时间戳对齐区间合并
打家劫舍(环形DP) 熟练 AEB分级决策、路径规划的奖励最大化
最大子数组和 熟练 信号质量评估、连续帧置信度累积
岛屿数量(DFS/BFS) 熟练 障碍物聚类、可行驶区域分割
括号匹配递归版 熟练 嵌套协议的解析(如CAN FD的包结构)
螺旋矩阵III 熟悉 传感器扫描轨迹、路径覆盖规划
字符串交替提取 熟悉 多路传感器数据流交织解析
十进制转二进制 熟悉 信号编码/解码、状态位映射
字母异位词分组 熟悉 传感器ID归一化、同义信号归类

学习路线(分三个阶段)

第一阶段:直接映射(你最熟悉的算法 → 最直接的ADAS应用)

**目标:**​ 让你立刻看到算法在ADAS中的用途,建立信心。

周次 算法 ADAS应用 具体产出
第1周 合并区间 多传感器视野重叠区计算 写一个函数,输入多个雷达/摄像头的视野范围(区间),输出它们的重叠区域
第2周 打家劫舍 AEB分级决策 用DP决定"是否刹车"以及"刹多大力度",使安全收益最大
第3周 最大子数组和 信号质量评估 分析一段时间的传感器信号,找出最稳定的连续片段
第4周 岛屿数量 障碍物聚类 用DFS把激光雷达点云聚类成独立的障碍物

第二阶段:深入应用(需要一点领域知识的算法)

**目标:**​ 结合ADAS的专业场景,提升深度。

周次 算法 ADAS应用 具体产出
第5-6周 DFS/BFS 可行驶区域搜索、泊车路径规划 在栅格地图上找出一条可行路径
第7-8周 螺旋矩阵 传感器扫描轨迹模拟 模拟激光雷达的螺旋扫描模式
第9-10周 位运算 CAN信号解析 从CAN帧中提取车速、转速等信号(就是我们之前那道题)

第三阶段:综合实战(多个算法组合解决一个完整问题)

**目标:**​ 把多个算法串联成一个完整的ADAS功能模块。

周次 项目 涉及的算法 具体产出
第11-12周 简易AEB系统 合并区间 + 打家劫舍 + 最大子数组和 输入模拟传感器数据,输出刹车决策和置信度
第13-14周 障碍物检测与跟踪 岛屿数量 + DFS + 合并区间 输入点云数据,输出障碍物列表和轨迹
第15-16周 综合Demo 以上全部 一个完整的ADAS感知-决策流水线

本周任务(第1周):合并区间 → 传感器视野重叠区计算

问题描述

假设一辆车上有3个传感器:

  • 前置摄像头:视野范围 -30°, 30°(相对于车头方向)
  • 左前角雷达:视野范围 10°, 70°
  • 右前角雷达:视野范围 -70°, -10°

问:哪些角度范围被至少两个传感器覆盖?

这就是典型的合并区间问题变体------不是合并所有区间,而是找出重叠次数 ≥ 2 的区域。

解法思路

  1. 将所有区间的端点标记为"起点"或"终点"

  2. 排序后遍历,用一个计数器记录当前被多少个传感器覆盖

  3. 当计数器 ≥ 2 时,记录当前区间

    def find_overlap_zones(intervals):
    events = []
    for start, end in intervals:
    events.append((start, 1)) # 起点,覆盖数+1
    events.append((end, -1)) # 终点,覆盖数-1
    events.sort() # 按位置排序

    复制代码
     count = 0
     overlap_start = None
     result = []
     
     for pos, delta in events:
         if count >= 2 and overlap_start is not None:
             result.append((overlap_start, pos))
             overlap_start = None
         count += delta
         if count >= 2 and overlap_start is None:
             overlap_start = pos
     
     return result

    sensors = [(-30, 30), (10, 70), (-70, -10)]
    print(find_overlap_zones(sensors))

    输出:[(-30, -10), (10, 30)]

相关推荐
小范的技术工坊几秒前
大模型蒸馏
人工智能·算法·数据挖掘·大模型
SamChan903 分钟前
PDF页面旋转与CropBox陷阱:译文回填位置总是错位的根因实测
python·ai·pdf·wpf
Benny_Tang4 分钟前
P9527 [JOIST 2022] 洒水器 / Sprinkler 题解
c++·算法
TOOLS指南6 分钟前
Chatshare 域名乱象:如何辨别仿冒站点,避坑指南
开发语言·信息可视化
程序员清风6 分钟前
Java 智能体开发:从对话接口到任务执行
java·人工智能·python
茉莉玫瑰花茶14 分钟前
GO [ 函数 ]
开发语言·后端·golang
2601_9669496515 分钟前
每日自动更新股票行情:如何设计可靠的数据任务,避免重复写入和脏数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
ZealSinger21 分钟前
Go1.25容器感知GOMAXPROCS避限流
java·开发语言
打工仔折腾 AI22 分钟前
从零写一个CAD 02:实体容器、Esc取消与键盘失灵的排查
人工智能·后端·python·性能优化
kiracrimson29 分钟前
希尔排序:让插入排序不再怕逆序
数据结构·算法·排序算法