【華為OD機試真題】232、統計射擊比賽成績 | 機試真題+思路參考+代碼分析(C++)

題目描述

給定一個射擊比賽成績單,包含多個選手若干次射擊的成績分數,請對每個選手按其最高3個分數之和進行降序排名,輸出降序排
名后的選手ID序列
條件如下:
1.一個選手可以有多個射擊成績的分數,且次序不固定
2.如果一個選手成績少于3個,則認為選手的所有成績無效,排名忽略該選手
3.如果選手的成績之和相等,則成績之和相等的選手按照其ID降序排列

輸入輸出

輸入
第一行:一個整數N,表示該場比賽總共進行了N次射擊,產生N個成績分數(2<=N<=100)
第二行:一個長度為N整數序列,表示參與每次射擊的選手D(0<=ID<=99)
第三行:一個長度為N整數序列,表示參與每次射擊的選手對應的成績(0<=成績<=100)
輸出
符合題設條件的降序排名后的選手ID序列

樣例1:

輸入
13
3,3,7,4,4,4,4,7,7,3,5,5,5
53,80,68,24,39,76,66,16,100,55,53,80,55
輸出
5,3,7,4
說明:
該場射擊比賽進行了13次,參賽的選手為3,4,5,7
● 3號選手成績: 53,80,55, 最高3個成績的和為: 80+55+53=188
● 4號選手成績: 24,39,76,66, 最高3個成績的和為: 76+66+39=181
● 5號選手成績: 53,80,55, 最高3個成績的和為: 80+55+53=188
● 7號選手成績: 68,16,100,最高3個成績的和為: 100+68+16=184
比較各個選手最高3個成績的和,有3號=5號>7號>4號,由于3號和5號成績相等且1D號5>3,所以輸出為: 5,3,7,4

樣例2

輸入
15
1,1,1,2,2,2,3,4,3,3,5,5,3,3,5
80,90,70,85,95,75,100,65,90,80,75,95,70,80,90
輸出
3,5,2,1

??C++ 題目理解與思路
1、定義選手結構體 Player

  • 結構體成員變量:
    • int id;: 選手的ID。
    • int total;: 選手的最高三個成績的總和。
    • 構造函數:不需要顯式的構造函數,因為結構體成員變量可以直接初始化。
    • 成員函數 calculateSumTopThree:沒有顯式定義,但在代碼中通過排序和求和的方式實現了該功能。

2、自定義排序比較函數 compare

  • 用于比較兩個選手的最高三個成績之和。
  • 比較規則:
    • 如果兩個選手的總分不同,則總分高的選手排在前面。
    • 如果兩個選手的總分相同,則ID大的選手排在前面。

3、輔助函數 splitStringToInt

  • 將輸入的逗號分隔的字符串轉換為整數數組。
  • 實現步驟:
    • 遍歷字符串中的每個字符。
    • 如果遇到逗號 ,,則將臨時字符串 temp 轉換為整數并添加到結果數組 result 中,然后清空 temp。
    • 如果遇到其他字符,則將其拼接到 temp 中。
    • 處理最后一個數字,將 temp 轉換為整數并添加到結果數組 result 中。

4、主函數邏輯

  • 讀取射擊次數 N:

    • 使用 cin >> N; 讀取射擊次數。
    • 使用 cin.ignore(); 忽略換行符,防止影響后續輸入。
  • 讀取選手ID序列:

    • 使用 getline(cin, ids_str); 讀取選手ID序列。
    • 使用 splitStringToInt(ids_str) 將ID序列轉換為整數數組 ids。
  • 讀取分數序列:

    • 使用 getline(cin, scores_str); 讀取分數序列。
    • 使用 splitStringToInt(scores_str) 將分數序列轉換為整數數組 scores
  • 記錄每個選手的成績:

    • 使用 unordered_map<int, vector> id_to_scores 哈希表
    • 記錄每個選手的所有成績。
    • 遍歷 ids 和 scores 數組,將每個成績添加到對應ID的列表中。
  • 計算每個選手的最高三個成績之和:

    • 創建一個 vector players 數組來存儲每個選手的有效信息。
    • 遍歷 id_to_scores 哈希表,對每個選手進行如下操作:
      • 如果該選手的成績數量少于3個,則忽略該選手。
      • 如果該選手的成績數量大于等于3個,則對其進行降序排序,并計算最高三個成績的總和。
      • 將選手ID和總分存儲到 players 數組中。
  • 排序選手:

    • 使用 sort(players.begin(), players.end(), compare); 按照總分降序排列選手,總分相同時按照ID降序排列。
  • 輸出結果:

    • 遍歷 players 數組,輸出選手ID,用逗號分隔。
    • 使用 bool first = true; 來控制輸出格式,確保第一個ID前沒有逗號。

? C++ 函數OJ版

#include <iostream>
#include <vector>
#include 

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

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

相關文章

?Unity 開發 | 如何通過 NTP 網絡時間實現精準的跨平臺時間同步【附完整源碼 + UI 模塊 + 偏差分析】

&#x1f3ae; 項目實戰 | 實現一套精確、可視化的游戲時間同步機制&#xff0c;讓你的多人在線游戲擺脫“時間不一致”噩夢&#xff01; 效果如圖&#xff1a; &#x1f4cc; 一、前言&#xff1a;為什么不能只信本地時間&#xff1f; 在 Unity 游戲開發中&#xff0c;時間幾…

Vue3 Composition API與十大組件開發案例詳解

文章目錄 一、Vue3核心API解析1.1 Composition API優勢1.2 核心API 二、十大組件開發案例案例1&#xff1a;響應式表單組件案例2&#xff1a;動態模態框&#xff08;Teleport應用&#xff09;案例3&#xff1a;可復用列表組件案例4&#xff1a;全局狀態通知組件案例5&#xff1…

Kafka 詳細解讀

1. Producer&#xff08;生產部卷王&#xff09; 職責&#xff1a;往 Kafka 里瘋狂輸出數據&#xff0c;KPI 是「日拋式消息海嘯」 職場人設&#xff1a; 白天開會畫餅&#xff0c;深夜寫周報的奮斗逼&#xff0c;口頭禪是「這個需求今晚必須上線&#xff01;」代碼里的「福報…

LicheeRV Nano 與Ubuntu官方risc-v 鏡像混合

LicheeRV Nano 官方給的鏡像并沒有unbutu, unbutu官方有一個基于 LicheeRV Dock的鏡像&#xff0c;想象能否將二者混合 &#xff08;1&#xff09;刷 LicheeRV Dock的鏡像 nano無法啟動 &#xff08;2&#xff09;將nano的boot分區替換掉 LicheeRV Dock的rootfs以外的分區也…

【模板匹配】圖像處理(OpenCV)-part10

19.1模板匹配 模板匹配就是用模板圖&#xff08;通常是一個小圖&#xff09;在目標圖像&#xff08;通常是一個比模板圖大的圖片&#xff09;中不斷的滑動比較&#xff0c;通過某種比較方法來判斷是否匹配成功,找到模板圖所在的位置。 不會有邊緣填充。 類似于卷積&#xff0c…

HTML:表格數據展示區

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>人員信息表</title><link rel"styl…

MySQL 的鎖,表級鎖是哪一層的鎖?行鎖是哪一層的鎖?

MySQL 的鎖層級與類型 在 MySQL 中&#xff0c;鎖的層級和實現與存儲引擎密切相關。 1. 表級鎖&#xff08;Table-Level Locks&#xff09; &#xff08;1&#xff09;存儲引擎層的表級鎖 實現層級&#xff1a;存儲引擎層&#xff08;如 MyISAM、InnoDB&#xff09;。特點&a…

阿里巴巴按圖搜索1688商品(拍立淘) API 返回值說明

阿里巴巴按圖搜索1688商品&#xff08;拍立淘&#xff09;API 返回值說明 阿里巴巴按圖搜索1688商品&#xff08;拍立淘&#xff09;API 的返回值通常以 JSON 格式返回&#xff0c;包含搜索結果、商品信息、分頁信息等。以下是具體的返回值說明&#xff1a; 1. 請求狀態信息 …

基于esp32-s3,寫一個實現json鍵值對數據創建和讀寫解析c例程

以下是一個基于 ESP32 - S3 使用 ESP - IDF 框架實現 JSON 鍵值對數據創建、讀寫和解析的 C 語言例程。 環境準備 確保你已經安裝了 ESP - IDF 開發環境&#xff0c;并且可以正常編譯和燒錄代碼到 ESP32 - S3 開發板。 代碼示例 #include <stdio.h> #include <stri…

MyBatis-Plus 使用 Wrapper 構建動態 SQL 有哪些優劣勢?

MyBatis-Plus (MP) 提供的 Wrapper (如 QueryWrapper, LambdaQueryWrapper, UpdateWrapper, LambdaUpdateWrapper) 是其核心特性之一&#xff0c;它允許我們在開發時以面向對象的方式構建 SQL 的 WHERE 條件、ORDER BY、SELECT 字段列表等部分。與傳統的 MyBatis 在 XML 文件中…

STM32與i.MX6ULL內存與存儲機制全解析:從微控制器到應用處理器的設計差異

最近做FreeRTos&#xff0c;以及前面設計的RVOS&#xff0c;這種RTOS級別的系統內存上的分布與CortexA系列里面的分布有相當大的區別&#xff0c;給我搞糊涂了。 目錄 STM32&#xff08;Cortex-M系列&#xff09;的內存與存儲機制 Flash存儲內容RAM存儲內容啟動與運行時流程示例…

Eteam 0.3版本開發規劃

Eteam 0.1系列經歷了3個小版本&#xff0c;主要完成了團隊資料庫功能。 Eteam 0.2系列經歷了22個小版本&#xff0c;主要完成了白板和AI交互的能力。 目前的問題 目前白板上的數據有兩個來源&#xff0c;團隊資料庫和外部數據。外部數據和團隊資料庫數據邊界不是很清晰。 0.3版…

HTML5好看的水果蔬菜在線商城網站源碼系列模板5

文章目錄 1.設計來源1.1 主界面1.2 關于我們1.3 商品服務1.4 果蔬展示1.5 聯系我們1.6 商品具體信息1.7 登錄注冊 2.效果和源碼2.1 動態效果2.2 源代碼 源碼下載萬套模板&#xff0c;程序開發&#xff0c;在線開發&#xff0c;在線溝通 作者&#xff1a;xcLeigh 文章地址&#…

深入理解Java包裝類:自動裝箱拆箱與緩存池機制

深入理解Java包裝類&#xff1a;自動裝箱拆箱與緩存池機制 對象包裝器 Java中的數據類型可以分為兩類&#xff1a;基本類型和引用類型。作為一門面向對象編程語言&#xff0c; 一切皆對象是Java語言的設計理念之一。但基本類型不是對象&#xff0c;無法直接參與面向對象操作&…

uniapp自定義拖拽排列

uniapp自定義拖拽排列并改變下標 <!-- 頁面模板 --> <template><view class"container"><view v-for"(item, index) in list" :key"item.id" class"drag-item" :style"{transform: translate(${activeInde…

基于SpringBoot的課程管理系統

前言 今天給大家分享一個基于SpringBoot的課程管理系統。 1 系統介紹 課程管理系統是一種專門為學校設計的軟件系統&#xff0c;旨在幫助學校高效地管理和組織各類課程信息。 該系統通常包括學生、教師和管理員三大角色。 他們可以通過系統進行選課、查看課程表、考試、進…

max31865典型電路

PT100讀取有很多種方案&#xff0c;常用的惠斯通電橋&#xff0c;和專用IC max31865 。 電阻溫度檢測器(RTD)是一種阻值隨溫度變化的電阻。鉑是最常見、精度最高的測溫金屬絲材料。鉑RTD稱為PT-RTD&#xff0c;鎳、銅和其它金屬亦可用來制造RTD。RTD具有較寬的測溫范圍&#x…

飛算 JavaAI 與 Spring Boot:如何實現微服務開發效率翻倍?

微服務架構憑借其高內聚、低耦合的特性&#xff0c;成為企業構建復雜應用系統的首選方案。然而&#xff0c;傳統微服務開發流程中&#xff0c;從服務拆分、接口設計到代碼編寫、調試部署&#xff0c;往往需要耗費大量時間與人力成本。Spring Boot 作為 Java 領域最受歡迎的微服…

(2)Docker 常用命令

文章目錄 Docker 服務器Docker 鏡像Docker 容器本地 RegistryRUN vs CMD vs ENTRYPOINTRUNCMDENTRYPOINT 限制容器對內存、CPU 和 IO 資源的使用內存CPUBlock IO設置權重bps 和 iops cgroup 和 namespacecgroupnamespacMount namespaceUTS namespaceIPC namespacePID namespace…

Django 實現電影推薦系統:從搭建到功能完善(附源碼)

前言&#xff1a;本文將詳細介紹如何使用 Django 構建一個電影推薦系統&#xff0c;涵蓋項目的搭建、數據庫設計、視圖函數編寫、模板渲染以及用戶認證等多個方面。&#x1f517;軟件安裝、環境準備 ? 【作者主頁—&#x1f4da;閱讀更多優質文章、獲取更多優質源碼】 目錄 一…