当前位置: 首页 > article >正文

58,web面试测试题

标题

机器人送餐最短路径
58充电堡餐厅为了提升员工就餐体验,研发一个送餐机器人,用于为在线下单的就餐人员送餐。
餐桌分布为一个比较工整的网格图,每一个餐桌座位都是坐标轴上第一象限中的一个整点,如图所示。
员工随意挑选座位后并下单。厨房收集订单信息。由机器人从默认起始位置(0, 0)开始送餐
机器人每1步只能移动一个座位,不能走对角线。机器人可以向x轴正方向,x轴负方向,或者y轴正方向移动1个单位(出于某种原因,机器人不能向y轴的负方向移动)
例如,如果当前时刻机器人所在的坐标为(x, y),下一步机器人可能可以到达的位置为(x + 1, y),(x - 1, y)或者(x, y + 1)。当机器人到达某个餐桌座位时,就餐人员就会立即取餐。一旦机器人分发完所有的饭菜,则表示送餐结束
写一个函数delivery,帮它计算一下送完一次订单最少所需要花费的总步数

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param order int整型二维数组 订单信息
 * @return int整型
 */
function delivery(order) {
    // 修改订单排序1,
    order.sort((a, b) => {
        return a[1] - b[1];
    });
    order.forEach((item, index) => {
        if (index > 0 && order[index - 1][0] > item[1]) {
            const filerList = order
                .filter((itm) => itm[1] == item[1])
                .sort((a, b) => b[0] - a[0]);
            order.splice(index, filerList.length, ...filerList);
        }
    });
    let stepNum = 0;

    order.forEach((item, index) => {
        if (index === 0) {
            stepNum = item[0] + item[1];
        } else {
            let lastStep = order[index - 1];
            let xStep =
                item[0] - lastStep[0] > 0
                    ? item[0] - lastStep[0]
                    : lastStep[0] - item[0];
            let yStep = item[1] - lastStep[1];
            stepNum = stepNum + xStep + yStep;
        }
    });
    console.log("stepNum==>", stepNum);
    return stepNum;
}
module.exports = {
    delivery: delivery,
};
//自测
delivery([[1, 1], [1, 2], [2, 2], [1, 3], [3, 3], [2, 6]])

自测:
我的代码测试出来的步数是12;可是最终的答案是10.我百思不得其解,也没有找到对应的答案;暂且记下来,希望以后得到解答


http://www.kler.cn/a/555057.html

相关文章:

  • Go Web 项目实战:构建 RESTful API、命令行工具及应用部署
  • 网络安全域管理 网络安全管理体系
  • 某手sig3-ios算法 Chomper黑盒调用
  • 解决gradio无法通过ip访问
  • Fino1: 关于推理增强型大型语言模型在金融领域的可迁移性
  • C#应用程序重启实现
  • HTML/CSS中属性选择器
  • 蓝桥杯备考:贪心算法之矩阵消除游戏
  • VScode 使用Deepseek又方便又好用的另一款插件
  • 【STM32】外部时钟|红外反射光电开关
  • EasyRTC智能硬件:实时畅联、沉浸互动、消音护航
  • 前端导出word文件,并包含导出Echarts图表等
  • phpmyadmin 文件包含(CVE-2014-8959)
  • 微信小程序实现拉卡拉支付
  • 《鸿蒙开发-答案之书》获取视频第一帧和视频时间
  • 深度学习-4.优化与正则化
  • 亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!
  • 第1章大型互联网公司的基础架构——1.11 消息中间件技术
  • android 使用 zstd算法压缩文件
  • 数仓搭建(hive):DWS层(服务数据层)