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

华为OD机试真题——新学校选址(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

在这里插入图片描述

2025 A卷 100分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《新学校选址》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C++

C

GO


题目名称:新学校选址


知识点:中位数、排序算法(如快速排序)
时间限制:1秒
空间限制:256MB
限定语言:不限


题目描述

为了缓解新学期学生人数暴涨的问题,小乐村需要建立一所新学校。考虑到学生上学的安全性,学校的位置必须满足所有学生家到学校的距离总和最短。假设学校和所有学生家都位于同一条直线上,请确定学校的最佳选址位置。若存在多个最优位置,则输出最小的位置值

输入描述

  • 第一行:整数 n,表示家庭数量,取值范围 [1, 1000]
  • 第二行:一组整数 m,表示每户家庭的位置(互不相同),取值范围 [0, 10000]

输出描述
一个整数,表示学校的最佳位置。

示例1
输入:

5  
0 20 40 10 30  

输出:

20  

说明:
20到各家庭的距离分别为20、0、20、10、10,总和为60,是最小值。

示例2
输入:

1  
20  

输出:

20  

示例3
输入:

2  
0 20  

输出:

0  

Java

问题分析

题目要求在一条直线上选择一个点建学校,使得所有家庭到该点的距离总和最小。根据数学原理,当数组有序时,中位数的位置能保证距离总和最小。若存在多个最优解,则取位置最小的那个。


解题思路

  1. 排序数组:将家庭位置按升序排列。
  2. 中位数定位:直接取排序后数组的中间位置元素。若数组长度为偶数,取中间两个位置中左侧的值(即索引为 (n-1)/2 的元素),满足题目要求的“最小位置”。

代码实现

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 读取家庭数量int n = sc.nextInt();sc.nextLine(); // 跳过换行符// 读取家庭位置字符串并分割为数组String line = sc.nextLine();String[] parts = line.split(" ");int[] locations = new int[n];for (int i = 0; i < n; i++) {locations[i] = Integer.parseInt(parts[i]);}// 对家庭位置进行排序Arrays.sort(locations);// 计算中位数索引int midIndex = (n - 1) / 2;// 输出最优位置System.out.println(locations[midIndex]);}
}

代码详解

  1. 输入处理

    int n = sc.nextInt();
    sc.nextLine(); // 跳过输入n后的换行符
    
    • 读取家庭数量 n,并处理换行符避免影响后续输入。
    String line = sc.nextLine();
    String[</

相关文章:

  • 【后端高阶面经:Elasticsearch篇】39、Elasticsearch 查询性能优化:分页、冷热分离与 JVM 调优
  • 如何用Python搭建一个网站
  • Linux笔记---分页存储管理
  • 博图软件块的概述-块的结构详解
  • k-way Hypergraph Partitioning via n-Level Recursive Bisection【2016 ALENEX】文献总结
  • 手机平板等设备租赁行业MDM方案解析
  • Oracle SHARED POOLRESERVED FREE LIST
  • VScode怎么运行一个c语言程序
  • Unity—lua基础语法
  • FFmpeg 4.3 H265 二十二.3,avformat_open_input 支持打开的协议
  • Anaconda 的基础教程,从入门到精通
  • FFMPEG-FLV-MUX编码
  • Flink流处理基础概论
  • springboot 微服务下部署AI服务
  • 微服务(SpringCloud)的简单介绍
  • 华为OD机试真题——传递悄悄话(二叉树最长路径问题)(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 深入研究Azure 容器网络接口 (CNI) overlay
  • 战略3.1 - 战略选择(发展战略-一体/密集/多元化)
  • 深度解析 8086 处理器:x86 架构的奠基者
  • RabbitMQ 核心原理与Spring Boot整合实战
  • 广西送变电建设公司铁塔厂网站/关键词权重查询
  • 湖北建设银行招标在哪个网站看/个人网站设计作品
  • 注册网站租空间哪里租/2021最新免费的推广引流软件
  • 成都旅游攻略景点必去/seo公司怎么样
  • 电商 做图 网站/信息流推广方式
  • 青岛网站设计建议i青岛博采网络/网站seo优化报告