华为OD机试真题 Java 实现【基站维修工程师】【2023Q1 200分】,附详细解题思路

一、题目描述

小王是一名基站维护工程师,负责某区域的基站维护。

某地方有n个基站(1

小王从基站1出发,途径每个基站1次,然后返回基站1,需要请你为他选择一条距离最短的路线。

二、输入描述

站点数n和各站点之间的距离(均为整数)。

如:

3 {站点数}
0 2 l {站点1到各站点的路程}
1 0 2 {站点2到各站点的路程}
2 1 0 {站点3到各站点的路程}

三、输出描述

最短路程的数值。

四、解题思路

  1. 创建二维数组,用于存储各基站之间的距离;
  2. 通过双重循环,将输入的距离数据存入二维数组中;
  3. 创建一个一维数组,初始化数据为1,用于标记基站的访问情况;
  4. 递归调用函数,计算最短路线;
  5. 已经访问的基站数n 等于 arr1-1时,表示已经访问了所有的基站,需要返回到基站1,此时将当前距离sum加上从当前基站到基站1的距离arr[currentNumber][0],并更新最小距离min;
  6. 遍历除基站1以外的其它基站,如果该基站未被访问(arr1[i] != 0),则将其标记为已访问arr1[i] = 0,递归调用

你可能感兴趣的:(java,华为,开发语言,算法,学习)