#5985. 空调遥控器题解
空调遥控器题解
错误分析
原代码存在以下关键错误:
- 方向数组定义错误:
dx数组包含错误值(如多余的-1和0),缺少+5、+10的正确操作,导致按键操作不完整。 - 队列指针未初始化:
t1未赋初值,直接使用++t1会导致内存访问错误。 - 范围判断有误:温度可以为
0,但原代码判断nx>0,且上限1000无意义(题目范围为0~40)。 - 未处理初始相等情况:若
a==b,应直接输出0,原代码未显式处理。
修正后的代码(带详细注释)

代码说明
- BFS 算法:求“最少按键次数”等价于求从
a到b的最短路径,BFS 是最适合的算法(按层遍历,首次到达目标时步数最少)。 - 方向数组:明确列出
±1、±5、±10六种操作,确保覆盖所有按键方式。 - 访问标记:用
vis数组避免重复访问同一温度,防止死循环和冗余计算。 - 边界处理:提前判断
a==b的情况,温度范围限制在0~40内,符合题目要求。