蜜蜂采蜜 JavaScript版 全排列

// 蜜蜂采蜜 ABCDE五点 从原点来回走完的最短距离
// 暴力:全排列 + 模拟距离
function distance (a, b) {
  const [a1, a2] = a.split(',').map(Number), [b1, b2] = b.split(',').map(Number)
  return Math.sqrt((a1-b1)**2 + (a2-b2)**2)
}
function getTotalDistance (list, res=0) {
  const todoList = ['0,0'].concat(list, '0,0')
  for(let i=1; i<7; i++) {
    res += distance(todoList[i-1], todoList[i])
  }
  return res
}
// 全排列模板
function getList (list, res=Infinity) {
  const dfs = (stack) => {
    if(stack.length === 5) {
      res = Math.min(res, getTotalDistance(stack))  // 这里修改
      return
    }

    for(let i=0; i<5; i++) {
      const cur = list[i].join(',')
      if(stack.includes(cur)) continue
      stack.push(cur)
      dfs(stack)
      stack.pop()
    }
  }
  dfs([])

  return res
}
console.log(getList([[200,0], [200,10], [200,50], [200,30], [200,25]]).toFixed(0))  // [2,3,4,1]  

全部评论
这个就很厉害了,我写不出来😂
点赞 回复 分享
发布于 2022-08-31 14:02 陕西

相关推荐

mq2:我倒是觉得这种敞亮一点好。能接受就去不能就不去呗。 完了跟现在“正常”公司一样,hr说的天花乱坠,进去一看根本就是996核动力牛马,想走又没应届生身份了。岂不是更糟。
点赞 评论 收藏
分享
剑桥断刀:找啥工作,牛客找个比如大厂软开或者随便啥的高薪牛马,大把没碰过妹子的技术仔,狠狠拿捏爆金币
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务