華為OD機試真題——會議接待 /代表團坐車(2025A卷:200分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

在這里插入圖片描述

2025 A卷 200分 題型

本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析;
并提供Java、python、JavaScript、C++、C語言、GO六種語言的最佳實現方式!

本文收錄于專欄:《2025華為OD真題目錄+全流程解析/備考攻略/經驗分享》

華為OD機試真題《會議接待 /代表團坐車》:


目錄

    • 題目名稱:會議接待 /代表團坐車
      • 題目描述
    • Java
      • 問題分析
      • 解題思路
      • 代碼實現
      • 代碼詳細解析
      • 示例測試
        • 示例1輸入:
        • 示例2輸入:
        • 示例3輸入:
      • 綜合分析
    • python
      • 問題分析
      • 解題思路
      • 代碼實現
      • 代碼詳細解析
      • 示例測試
        • 示例1輸入:
        • 示例2輸入:
        • 示例3輸入:
      • 綜合分析
    • JavaScript
      • 問題分析
      • 解題思路
      • 代碼實現
      • 代碼詳細解析
      • 示例測試
        • 示例1輸入:
        • 示例2輸入:
        • 示例3輸入:
      • 綜合分析
    • C++
      • 問題分析
      • 解題思路
      • 代碼實現
      • 代碼詳細解析
        • 1. 輸入處理
        • 2. 字符串分割
        • 3. 動態規劃數組初始化
        • 4. 動態規劃核心邏輯
        • 5. 輸出結果
      • 示例測試
        • 示例1輸入:
        • 示例2輸入:
        • 示例3輸入:
      • 綜合分析
    • C語言
      • 問題分析
      • 解題思路
      • 代碼實現
      • 代碼詳細解析
      • 示例測試
        • 示例1輸入:
        • 示例2輸入:
        • 示例3輸入:
      • 綜合分析
    • GO
      • 問題分析
      • 解題思路
      • 代碼實現
      • 代碼詳細解析
      • 示例測試
        • 示例1輸入:
        • 示例2輸入:
        • 示例3輸入:
      • 綜合分析


題目名稱:會議接待 /代表團坐車


  • 知識點:動態規劃(背包問題)
  • 時間限制:1秒
  • 空間限制:256MB
  • 限定語言:不限

題目描述

某組織舉行會議,來了多個代表團同時到達,接待處只有一輛汽車,可以同時接待多個代表團。為提高車輛利用率,請幫接待員計算可以坐滿車的接待方案,輸出方案數量。

約束條件

  1. 一個代表團只能上一輛車,且代表團人數(每個代表團人數≤30,總數量≤30)必須小于汽車容量(≤100)。
  2. 必須將車輛坐滿,即所選代表團人數總和等于汽車容量。

輸入描述

  • 第一行為各代表團人數,以英文逗號分隔(如 5,4,2,3,2,4,9)。
  • 第二行為汽車載客量(如 10)。

輸出描述

  • 輸出坐滿汽車的方案數量,若無解則輸出 0

示例
輸入:

5,4,2,3,2,4,9  
10  

輸出:

4  

說明
可能的組合為 [2,3,5][2,4,4][2,3,5][2,4,4](允許重復選擇不同索引的相同數值代表團,但每個代表團僅能被選一次)。

補充說明

  • 代表團人數按輸入順序排列,組合需嚴格滿足總和等于汽車容量。
  • 動態規劃(背包問題)或回溯法為典型解法。

Java

問題分析

我們需要計算從代表團中選擇若干代表團,使其人數之和等于汽車的容量,且每個代表團只能被選一次。這是一個典型的0-1背包問題,要求恰好裝滿背包的方案數。


解題思路

  1. 動態規劃定義
    • dp[j] 表示總和為 j 的方案數。
  2. 狀態轉移
    • 遍歷每個代表團人數 num,從后向前更新 dp[j]dp[j] += dp[j - num]
  3. 初始化
    • dp[0] = 1,表示總和為0的方案數為1(不選任何代表團)。

代碼實現

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 讀取代表團人數String[] parts = scanner.nextLine().split(",");int[] nums = new int[parts.length];for (int i = 0; i < parts.length; i++) {nums[i] = Integer.parseInt(parts[i]);}// 讀取汽車容量int capacity = Integer.parseInt(scanner.nextLine());int[] dp = new int[capacity + 1];dp[0] = 1; // 初始化:總和為0的方案數為1(不選任何代表團)// 動態規劃處理每個代表團人數for (int num : nums) {// 從后向前遍歷,確保每個代表團只被選一次for (int j = capacity; j >= num; j--) {dp[j] += dp[j - num];}}// 輸出結果System.out.println(dp[capacity]);}
}

代碼詳細解析

  1. 輸入處理

    • 使用 Scanner 讀取輸入,將代表團人數分割為整數數組 nums
    • 讀取汽車容量 capacity
  2. 動態規劃數組初始化

    • dp 數組長度為 capacity + 1,初始時 dp[0] = 1,其余為0。
  3. 遍歷每個代表團人數

    • 對每個 num,從 capacitynum 逆序遍歷,更新 dp[j]
      for (int j = capacity; j >= num; j--) {dp[j] += dp[j - num];
      }
      
    • 逆序遍歷確保每個代表團僅被考慮一次(0-1背包特性)。
  4. 輸出結果

    • dp[capacity] 存儲了恰好裝滿汽車的方案數。

示例測試

示例1輸入:
5,4,2,3,2,4,9  
10  

輸出

4  

解析
可能的組合為:

  • 5(索引0)、2(索引2)、3(索引3)
  • 4(索引1)、4(索引5)、2(索引4)
  • 5(索引0)、2(索引4)、3(索引3)
  • 4(索引1)、4(索引5)、2(索引2)
示例2輸入:
2,2  
4  

輸出

1  

解析
唯一方案:選擇兩個2(不同索引)。

示例3輸入:
1,1,1  
3  

輸出

1  

解析
唯一方案:選擇所有三個1。


綜合分析

  1. 時間復雜度O(N×C)

    • N 為代表團數量,C 為汽車容量。每個代表團需遍歷 C 次。
  2. 空間復雜度O?

    • 僅需一個長度為 C+1 的數組。
  3. 優勢

    • 高效準確:動態規劃嚴格保證最優解。
    • 空間優化:一維數組節省內存。
    • 處理大容量:使用 int 數組避免溢出(假設結果在 int 范圍內)。
  4. 適用場景

    • 代表團數量較大(如 N=30),汽車容量適中(如 C=100)。

python

問題分析

我們需要從代表團中選擇若干代表團,使它們的人數之和等于汽車容量,且每個代表團只能被選一次。這是一個典型的0-1背包問題,要求恰好裝滿背包的方案數。


解題思路

  1. 動態規劃定義
    • dp[j] 表示總和為 j 的方案數。
  2. 狀態轉移
    • 遍歷每個代表團人數 num,從后向前更新 dp[j]dp[j] += dp[j - num]
  3. 初始化
    • dp[0] = 1,表示總和為0的方案數為1(不選任何代表團)。

代碼實現

def main():import sys# 讀取輸入input_lines = sys.stdin.read().splitlines()nums = list(

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83369.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言---動態內存管理、柔性數組

一、malloc和free 1、變長數組 變長數組是指數組的大小可以通過變量來指定。 在c99以及之后的標準中&#xff1a; #include<stdio.h> int main() { int n0; scanf("%d",&n); } 2、malloc和free 這個函數向內存申請一塊連續可用的空間&#xff0c;并返…

WEBSTORM前端 —— 第3章:移動 Web —— 第4節:移動適配-VM

目錄 一、適配方案 二、VM布局 ?編輯 三、vh布局 四、案例—酷我音樂 一、適配方案 二、VM布局 三、vh布局 四、案例—酷我音樂

Dynamics 365 Business Central AI Sales Order Agent Copilot

#AI Copilot# #D365 BC 26 Wave# 最近很多客戶都陸續升級到 Dynamics 365 Business Central 26 wave, Microsoft 提供一個基于Copilot 的Sales Order Agent&#xff0c;此文將此功能做個介紹. Explorer: 可以看到26版本上面增加了這樣一個新圖標。 Configuration: 配置過程…

【harbor】--配置https

使用自建的 CA 證書來自簽署和啟用 HTTPS 通信。 &#xff08;1&#xff09;生成 CA認證 使用 OpenSSL 生成一個 2048位的私鑰這是 自建 CA&#xff08;證書頒發機構&#xff09; 的私鑰&#xff0c;后續會用它來簽發證書。 # 1創建CA認證 cd 到harbor [rootlocalhost harbo…

Selenium基礎操作方法詳解

Selenium基礎操作方法詳解&#xff1a;從零開始編寫自動化腳本&#xff08;附完整代碼&#xff09; 引言 Selenium是自動化測試和網頁操作的利器&#xff0c;但對于新手來說&#xff0c;掌握基礎操作是成功的第一步。本文將手把手教你使用Selenium完成瀏覽器初始化、元素定位、…

python同步mysql數據

python寫了一個簡單的mysql數據同步腳本,只作為學習練習,大佬勿噴 # -*- coding: utf-8 -*- """ Time:2025/5/29 14:38 Auth:HEhandsome """ import pymysql from pymysql import Connectclass Mysql:def __init__(self):#源數據庫self.sou_hos…

手撕Java+硅基流動實現MCP服務器教程

手撕Java硅基流動實現MCP服務器教程 一、MCP協議核心概念 MCP是什么 MCP 是 Anthropic (Claude) 主導發布的一個開放的、通用的、有共識的協議標準。 ● MCP 是一個標準協議&#xff0c;就像給 AI 大模型裝了一個 “萬能接口”&#xff0c;讓 AI 模型能夠與不同的數據源和工…

.net consul服務注冊與發現

.NET中Consul服務注冊與發現的技術實踐 在微服務架構中&#xff0c;服務的注冊與發現是至關重要的環節&#xff0c;它能幫助各個服務之間實現高效的通信和協作。Consul作為一款功能強大的工具&#xff0c;為我們提供了優秀的服務注冊與發現解決方案。今天&#xff0c;我們就來…

大數據量下的數據修復與回寫Spark on Hive 的大數據量主鍵沖突排查:COUNT(DISTINCT) 的陷阱

背景與問題概述 這一周&#xff08;2025-05-26-2026-05-30&#xff09;我在搞數據擬合修復優化的任務&#xff0c;有大量的數據需要進行數據處理及回寫&#xff0c;大概一個表一天一分區有五六千萬數據&#xff0c;大約一百多列的字段。 具體是這樣的我先取檔案&#x…

基于 AUTOSAR 的域控產品軟件開發:從 CP 到 AP 的跨越

基于 AUTOSAR 的域控產品軟件開發&#xff1a;從 CP 到 AP 的跨越 一、AUTOSAR AP 架構解析&#xff1a;面向智能汽車的自適應框架 &#xff08;一&#xff09;引言 隨著汽車智能化向 L3 演進&#xff0c;傳統 AUTOSAR CP&#xff08;經典平臺&#xff09;在實時性、動態性和…

Nacos 配置管理案例:nacos-spring-cloud-config-example詳解

一、結構說明&#xff1a;基于Spring Cloud Alibaba的微服務示例 nacos-spring-cloud-config-example : 服務提供者 二、技術棧&#xff1a;Spring BootSpring CloudSpring Cloud Alibaba Nacos Actuator&#xff08;可選&#xff1a;監控&#xff09; 三、使用環境 安裝…

BUUCTF[ACTF2020 新生賽]Include 1題解

BUUCTF[ACTF2020 新生賽]Include 1題解 題目分析&#xff1a;知識準備&#xff1a;php://filter 過濾器參數說明常用過濾器功能對照表 開始解題&#xff1a;原理解析構造payload 總結 題目分析&#xff1a; 生成靶機&#xff0c;打開網址&#xff0c;查看源碼&#xff0c;抓包…

vscode + cmake + ninja+ gcc 搭建MCU開發環境

vscode cmake ninja gcc 搭建MCU開發環境 文章目錄 vscode cmake ninja gcc 搭建MCU開發環境1. 前言2. 工具安裝及介紹2.1 gcc2.1.1 gcc 介紹2.1.2 gcc 下載及安裝 2.2 ninja2.2.1 ninja 介紹2.2 ninja 安裝 2.3 cmake2.3.1 cmake 介紹2.3.2 cmake 安裝 2.4 VScode 3. 上手…

九(1). 引用作為函數參數的使用

引用作為參數使用 在 C 中&#xff0c;引用作為函數參數是一種高效且靈活的參數傳遞方式&#xff0c;它避免了拷貝開銷&#xff0c;同時允許函數直接操作原始數據。 以下是關于引用作為參數的詳細使用指南和最佳實踐&#xff1a; 1. 引用作為參數的基本用法 (1) 普通引用&…

Linux多路TTS混音播放:讓多個語音同時清晰可聽

Linux多路TTS混音播放:讓多個語音同時清晰可聽 為什么需要多路混音播放?技術原理概述第一步:配置ALSA dmix混音插件為什么需要dmix?具體配置步驟第二步:生成TTS語音文件為什么需要格式轉換?Python生成腳本第三步:實現多路同時播放播放器設計原理Python實現代碼多路同時播…

Spring AI 1.0 GA 深度解析:構建企業級AI應用的全棧實踐指南

目錄 Spring AI 1.0 核心架構解析統一接口與多模型支持檢索增強生成(RAG)全流程實戰對話記憶與工具調用進階模型評估與可觀測性體系企業級應用案例與最佳實踐未來演進與技術展望1. Spring AI 1.0 核心架構解析 1.1 技術架構演進 #mermaid-svg-ymTZMAaxOwd4OAMu {font-family…

Docker 安裝 Redis 容器

系列文章目錄 文章目錄 系列文章目錄前言1 獲取redis鏡像2 創建和部署redis容器3 查看redis是否啟動成功4 使用Redis客戶端驗證連接總結 前言 搭建環境&#xff1a; ubuntu22.04.05 docker redis: 7.0.10 測試環境&#xff1a; windows: win11 Redis測試客戶端&#xff1a;Ti…

學習vue3階段性復習(插槽,Pinia,生命周期)

目錄 插槽(匿名插槽&#xff0c;具名插槽) 插槽概述 匿名插槽 具名插槽 Pinia(統一管理&#xff0c;共享數據&#xff09; pinia概述 安裝和使用Pinia 1 使用命令下載Pinia 2 再main.js中導入&#xff0c;注冊到vue框架中 3使用pinia 持久化存儲插件 1 第一步&…

嵌入式Linux 期末復習指南(上)

鑒于互聯網上針對本科目相關復習視頻及資料過少&#xff0c; 撰寫本篇期末復習指南用作期末復習知識點掃盲&#xff0c;以應對本科期末考試及格之用。 由于任課老師并透露考試范圍或任何有關試卷的相關信息&#xff0c;本篇指南基于教材、上機實驗報告及作者經驗編寫&#xff0…

VScode ios 模擬器安裝cocoapods

使用 Homebrew 安裝&#xff08;推薦&#xff09; 如果你有 Homebrew&#xff0c;直接用它安裝更穩定&#xff1a; brew install cocoapods