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

news2024/11/24 20:04:40

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Python算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出

一、题目描述

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

某地方有n个基站(1<n<10),已知各基站之间的距离s(0<s<500),并且基站x到基站y的距离,与基站y到基站x的距离并不一定会相同。

小王从基站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,递归调用,参数为下一个基站的编号i、已访问基站数量n+1、已经累计的距离和;
  7. 将已访问的基站标记为未访问;
  8. 输出最小距离min;

五、Python算法源码

def get(arr, arr1, now, n, total):
    global min_distance
    if n == len(arr1) - 1:
        total += arr[now][0]
        min_distance = min(min_distance, total)
        return
    for i in range(1, len(arr1)):
        if arr1[i] != 0:
            arr1[i] = 0
            get(arr, arr1, i, n + 1, total + arr[now][i])
            arr1[i] = 1


def shortest_distance(n, distances):
    global min_distance
    arr = []
    for i in range(n):
        arr.append(distances[i])

    arr1 = [1] * n

    get(arr, arr1, 0, 0, 0)

    return min_distance

六、效果展示

1、输入

3
0 2 1
1 0 2
2 1 0

2、输出

3

在这里插入图片描述



🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(Python)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 异常处理

异常是程序在执行期间产生的问题。C 异常是指在程序运行时发生的特殊情况&#xff0c;比如尝试除以零的操作。 异常提供了一种转移程序控制权的方式。C 异常处理涉及到三个关键字&#xff1a;try、catch、throw。 throw: 当问题出现时&#xff0c;程序会抛出一个异常。这是通…

运动新风尚,听歌不用线——南卡OE真无线骨传导耳机

以往在选择运动耳机时&#xff0c;通常会选择骨传导耳机&#xff0c;骨传导耳机有着传统入耳式耳机以及头戴式耳机所不具备的优势。例如在运动稳定性以及安全性方面&#xff0c;骨传导耳机则更胜一筹&#xff0c;它在使用时&#xff0c;双耳是开放的&#xff0c;首先它不会有传…

0. 深度生成模型-基于得分的生成模型

深度生成模型-基于得分的生成模型 1. 概述1.1. 深度生成模型1.2. 本文内容 2. 基于得分的生成模型2.1. 分数匹配2.1.1. 去噪分数匹配2.1.2. 切片分数匹配 2.2. 朗之万动力学采样 3. 基于分数的生成式建模所面临的挑战3.1. 流形假说3.2. 低数据密度区域3.2.1 与分数匹配的分数估…

redis运维

redis运维 1.主从复制 互联网三高架构&#xff1a;高并发、高性能、高可用 单机redis的风险与问题&#xff1f; 问题1.机器故障 现象&#xff1a;硬盘故障、系统崩溃本质&#xff1a;数据丢失&#xff0c;很可能对业务造成灾难性打击结论&#xff1a;基本上会放弃使用redis.…

前端人必须掌握的抓包技能

1. 前言 时隔 3 年&#xff0c;重新接触了移动端 h5 页面开发&#xff0c;上一次还是大四实习。这一次是 hybrid 开发&#xff0c;涉及到 h5 页面与原生 app 的交互&#xff0c;h5 页面需要与原生打通登录态&#xff0c;以及调用原生app 的接口&#xff0c;比如调用原生相机进…

牙科口腔小程序开发 用科技呵护口腔健康

随着人们生活经济水平的提高&#xff0c;对于健康也更加重视&#xff0c;牙科口腔是重要的一个方面&#xff0c;尤其是青少年因为饮食习惯的问题尝尝需要看牙科&#xff0c;口腔科等&#xff0c;传统的牙科口腔医院服务流程繁琐&#xff0c;给用户造成了极大困扰。随着互联网技…

企业实施BI的时机和选择考虑

如果你的企业还只处在初创阶段&#xff0c;但又需要为日后的BI数据化做准备时。在数聚股份看来出于成本考虑&#xff0c;你可以先用Excel梳理好业务核心数据&#xff0c;聚焦核心指标&#xff0c;接着发展用户&#xff0c;积累业务数据。 当你的Excel报表已经无法承载你的业务量…

kafka3.x 入门 安装(一)

一、下载地址 http://kafka.apache.org/downloads.html 二、 zookeeper安装教程 https://blog.csdn.net/weixin_43205308/article/details/130426019 三、解压 这里使用的是kafka_2.12-3.0.0.tgz tar -zvxf kafka_2.12-3.0.0.tgz四、修改配置 进入到安装路径的config文件夹下…

青岛大学_王卓老师【数据结构与算法】Week03_05_线性表的链式表示和实现5_学习笔记

本文是个人笔记&#xff0c;仅用于学习分享&#xff0c;素材来自青岛大学王卓老师的教学视频&#xff0c;如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–第3周05–2.5线性表的链式表示和实现5–单链表基本操作3–清空单链表 &#…

Linux基于thundersvm使用GPU对svm进行加速

Linux基于thundersvm使用GPU对svm进行加速 文章目录 Linux基于thundersvm使用GPU对svm进行加速下载方法pip快速下载命令 普通下载命令问题解决方法以下操作需要使用sudo权限 使用thundersvm调用方式 在代码中的使用训练代码更改更改内容 加载模型同样需要导入thundersvm更改内容…

GC日志中的信息怎么看-1

GC日志中的信息怎么看 GC日志中括号里面是GC信息&#xff0c;包括GC前、后堆内存使用量和堆内存总大小 以一份GC日志为例&#xff1a; [GC (Allocation Failure) PSYoungGen: 1362K->297K(2048K)]&#xff0c;表示在执行Young GC时&#xff0c;Young区占用了1362k的空间&a…

swagger3+nginx访问swagger-config报404问题解决

springboot2.7.11springdoc-openapi-ui1.6.14实现sagger3的接入&#xff0c;在使用nginx转发时遇到Failed to load remote configuration异常&#xff0c;查看请求发现在加载swagger-config时报404: 多番搜寻后找到这个地址&#xff1a;https://springdoc.org/faq.html#how-can…

希望脱颖而出的企业的23个社交媒体帖子创意

社交媒体已成为现代商业不可或缺的一部分。它为企业提供了前所未有的机会与客户建立联系并建立忠实的追随者。然而&#xff0c;由于社交媒体上有如此多的竞争声音&#xff0c;要脱颖而出比过去任何时候都更加困难。 在本文中&#xff0c;我们将分享23个社交媒体发帖创意&#…

使用ClimateLearn

来源 ClimateLearn官网使用介绍 ClimateLearn 是一个 Python 库&#xff0c;用于以标准化、直接的方式访问最先进的气候数据和机器学习模型。 背景 近年来&#xff0c;极端天气事件使气候变化的威胁更加明显。 袭击美国东部的大西洋飓风的强度和严重程度一直在增加。 倾盆大雨…

飞凌嵌入式荣获「ISO14001」和「ISO45001」双认证

近日&#xff0c;飞凌嵌入式荣获 ISO14001环境管理体系认证 和 ISO45001职业健康安全管理体系认证 两项证书&#xff0c;标志着飞凌嵌入式在规范化、标准化和科学化的现代企业管理轨道上更进一步。 荣获ISO14001环境管理体系认证证书无疑是对飞凌嵌入式现有管理体系、产品质量与…

kubernetes集群备份与恢复

目录 一、k8s集群备份与恢复 二、k8s备份-备份etcd 2.1 etcd v2版本数据备份与恢复 2.2 etcd v3版本数据备份与恢复 2.3 etcd数据备份脚本 1.1.4 k8s集群etcd备份恢复流程 三、k8s备份-velero 3.1 velero简介 3.2 velero部署 1.安装 2.准备镜像 3.准备对象存储 4.准…

JAVA-编程基础-01初始Java

Lison <dreamlison163.com>, v1.0.0, 2023.03.05 JAVA-编程基础-01-初始Java 文章目录 JAVA-编程基础-01-初始JavaJava语言概述Java是什么Java语言的特 初始Java的main方法Main 方法示例了解HelloWorld代码的编写 运行Java程序**JDK、JRE、JVM之间的关系&#xff1f;** …

人工成本上涨推动服务行业转向智能化

近年来&#xff0c;随着人工成本的不断上涨&#xff0c;越来越多的企业开始转向智能客服系统&#xff0c;以提供更高效、更经济的客户服务。智能客服的崛起成为了服务行业的新趋势&#xff0c;为企业节省成本、提升服务质量带来了巨大的机遇。 ** 智能接口测试地址&#xff1a;…

【CentOS】VirtualBox yum 无法使用

【CentOS】VirtualBox yum 无法使用 yum install net-tools -y出现如下错误&#xff1a; cannot find a valid baseurl for repo: base/7/x86_64或无法ping 解决如下&#xff1a; 进入系统&#xff0c;修改网卡信息。 执行修改命令&#xff0c;ifcfg-xxx 后面的xxx就是上面…

Linux系统下查看动态库依赖关系指令(ldd)

下面介绍一下在Linux系统下利用ldd指令查看动态库依赖关系&#xff1b; 文章目录 1、ldd命令全称2 ldd参数说明3 简单示例4 查看缺少的依赖库5、ldd指令详细介绍 LDD用来打印或者查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。ldd不是一个可…