算法题记录【华为od】基站维修工程师

该文章介绍了一种基于递归和数组特性的算法,用于计算在给定矩阵中从起点到回到原点的最短路径。作者提到在实现过程中遍历每个点并递归地检查所有可能的路径,同时分享了其前端技能,包括Vue、React和TS/JS,并表示正在找工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

思路分析

         采用递归+数组特性,依次判断经过每个点,之后回到原点的距离,从而选择最短的距离;

代码解析

let input = [
  [3],
  [0, 2, 1],
  [1, 0, 2],
  [9, 1, 0]], sum = 0, min = Infinity, stepList = [];
let input1 = input.shift();
for (let i = 0; i < input.length; i++) {
  //从起始点开始计算
  stepList.push(i)
  //总体思路是利用数组的特性,判断每一个点如果是选择特性之后回到原点的最短距离
  func(input, i, stepList, input[0][i])
}
function func (input, index, step, sum) {
  //计算依照当前路数回到原路径需要多远的距离
  if (step.length + 1 == input.length) {
    //判断最小值
    min = Math.min(min, sum + input[index][0])
  } else {
    for (let j = 0; j < input.length; j++) {
      //判断是否经过当前点位
      if (step.indexOf(j) != -1) continue
      //当前缓存列表尾输入点
      step.push(j);
      //递归调用函数
      func(input, j, step, sum + input[index][j]);
      //当前缓存列表尾输出点
      step.pop()
    }
  }
}

后话

只是记录,正在找工作中,各位老板缺前端的可以私信,会vue,react,ts,js,22届本科毕业,一年工作经验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值