華為OD機試-射擊比賽成績

題目描述

射擊比賽成績統計
給定一個射擊比賽成績單
包含多個選手若干次射擊的成績分數
請對每個選手按其最高三個分數之和進行降序排名
輸出降序排名后的選手ID序列

條件如下:
一個選手可以有多個射擊成績的分數 且次序不固定
如果一個選手成績小于三個 則認為選手的所有成績無效 排名忽略該選手
如果選手的成績之和相等,則成績相等的選手按照其ID降序排列
輸入描述
輸入第一行:一個整數 N
表示該場比賽總共進行了N次射擊
產生N個成績分數 2 <= N <= 100
輸入第二行 一個長度為N的整數序列
表示參與本次射擊的選手Id
0 <= ID <= 99
輸入第三行是長度為N的整數序列
表示參與每次射擊的選手對應的成績
0 <= 成績 <= 100

輸出描述
符合題設條件的降序排名后的選手ID序列

示例一
輸入
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最高三個成績的和為 188
4號選手的成績為24 39 76 66最高三個和為181
5號選手的成績為53 80 55 最高三個和為188
7號選手成績為68 16 100 最高三個和184
比較各個選手最高三個成績的和
3 = 5 > 7 > 4
由于3和5成績相等 且5 > 3 所以輸出為5,3,7,4

代碼實現

# coding:utf-8
import numpyclass Solution:def shotScore(self, k, id, score):s = dict()# 遍歷射擊成績,將每個人的成績存到字典s里,格式為s = {'ID':[score1、score2.....]}for i in range(len(id)):if id[i] in s.keys():m = s[id[i]]m.append(score[i])s[id[i]] = melse:m = list()m.append(score[i])s[id[i]] = m# 遍歷字典S,對每個人的成績進行排序for k, v in s.items():if len(v) < 3:  # 成績數少于3個的,成績丟棄s.pop(k)else:v.sort(reverse=True)  # 有效成績由高到低排序sums = int(v[0]) + int(v[1]) + int(v[2])  # 對最高的三個分數求和,并替換掉當前字段valuev = sumss[k] = vres = sorted(s.items(), key=lambda x: (-x[1], -x[0]))  # 字典按照值降序+key降序的方式重拍ret = []for i in range(len(res)):ret.append(res[i][0])return retif __name__ == '__main__':k = input("K:")ids = input("ids:")id = [int(i) for i in ids.split(',')]id = numpy.array(id)ss = input("score:")s = numpy.array([n for n in ss.split(',')])solution = Solution()print(solution.shotScore(k, id, s))

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

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

相關文章

【Go 基礎篇】Go語言基本數據類型轉換:字符串、整數、浮點數、字符與布爾類型的轉換

介紹 在計算機編程中&#xff0c;不同的數據類型用于表示不同種類的數據。在Go語言&#xff08;Golang&#xff09;中&#xff0c;基本數據類型包括字符串、整數、浮點數、字符和布爾類型。在實際開發中&#xff0c;經常需要進行不同數據類型之間的轉換&#xff0c;以滿足不同…

安達發APS|APS排產軟件之計劃甘特圖

在當今全球化和競爭激烈的市場環境下&#xff0c;制造業企業面臨著巨大的壓力&#xff0c;如何在保證產品質量、降低成本以及滿足客戶需求的同時&#xff0c;提高生產效率和競爭力成為企業需要迫切解決的問題。在這個背景下&#xff0c;生產計劃的制定和執行顯得尤為重要。然而…

2023年京東按摩儀行業數據分析(京東銷售數據分析)

近年來&#xff0c;小家電行業憑借功能與顏值&#xff0c;取代黑電和白電&#xff0c;成為家電市場的主要增長點。在這一市場背景下&#xff0c;顏值更高、功能更豐富、品種更齊全的各類按摩儀&#xff0c;借助新消費和電子商務的風潮&#xff0c;陸續被推上市場。今年&#xf…

【Cocos Creator 項目實戰 】消滅星星加強版(附帶完整源碼工程)

本文乃Siliphen原創&#xff0c;轉載請注明出處 目錄 概述 游戲整體流程 游戲框架設計 單一職責的類 主要流程控制類 核心玩法模塊 UI&#xff1a; 游戲世界&#xff1a; 本文項目的代碼組織結構 作者項目實踐總結 場景只有一個入口腳本 盡量少在節點上掛載腳本 構…

從零構建深度學習推理框架-8 卷積算子實現

其實這一次課還蠻好理解的&#xff1a; 首先將kernel展平&#xff1a; for (uint32_t g 0; g < groups; g) {std::vector<arma::fmat> kernel_matrix_arr(kernel_count_group);arma::fmat kernel_matrix_c(1, row_len * input_c_group);for (uint32_t k 0; k < k…

macOS(m芯片)連接服務器及其進行文件傳輸的各種方式的詳解

說明&#xff1a;使用了macOS后發現&#xff0c;win系統能使用的xshell、xftp等連接服務器及其文件傳輸等軟件均不能使用了&#xff0c;沒有兼容的版本。所以我們剛切換到mac系統該如何去適應呢。 一、連接遠程服務器 macOS中前文也說道我們使用的是iterm2進行終端控制的&…

基于深度信念神經網絡的礦石產量預測,基于DBN的礦石產量預測,DBN的詳細原理

目錄 背影 DBN神經網絡的原理 DBN神經網絡的定義 受限玻爾茲曼機(RBM) DBN的礦石產量預測 基本結構 主要參數 數據 MATALB代碼 結果圖 展望 背影 DBN是一種深度學習神經網絡,擁有提取特征,非監督學習的能力,是一種非常好的分類算法,本文將DBN算法進行礦石產量預測 DB…

Spring Boot Maven package時顯式的跳過test內容

在pom.xml的編譯插件部分顯式的增加一段內容&#xff1a; <plugin> <!-- maven打包時&#xff0c;顯式的跳過test部分 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.…

流量日志分析--實操

[鶴城杯 2021]流量分析 <--第一道流量分析不難,主要就是布爾盲注的流量包分析,直接查看http請求包即可我們可以通過觀察看到注入成功的響應長度不同,這里成功的為978字節,失敗的994字節.不要問為什么.其實也可以直接判斷.978的流量比994的少了非常多 顯然就是成功的(因為這里…

Docker中部署redis

1.部署redis要求 2.部署教程 連接容器中的redis redis部署完畢

大模型基礎:GPT家族與提示學習

大模型基礎:GPT 家族與提示學習 從 GPT-1 到 GPT-3.5 GPT(Generative Pre-trained Transformer)是 Google 于2018年提出的一種基于 Transformer 的預訓練語言模型。它標志著自然語言處理領域從 RNN 時代進入 Transformer 時代。GPT 的發展歷史和技術特點如下: GPT-12018年6月…

QQ附近人引流的幾個詳細方法,qq附近人引流腳本實操演示教程

大家好我是你們的小編一辭腳本&#xff0c;今天給大家分享新的知識&#xff0c;很開心可以在CSDN平臺分享知識給大家,很多伙伴看不到代碼我先錄制一下視頻 在給大家做代碼&#xff0c;給大家分享一下qq引流腳本的知識和視頻演示 不懂的小伙伴可以認真看一下&#xff0c;我們一…

【CSS】CSS 布局——常規流布局

<h1>基礎文檔流</h1><p>我是一個基本的塊級元素。我的相鄰塊級元素在我的下方另起一行。</p><p>默認情況下&#xff0c;我們會占據父元素 100%的寬度&#xff0c;并且我們的高度與我們的子元素內容一樣高。我們的總寬度和高度是我們的內容 內邊距…

Flink筆記

下面是你提供的文字整理后的結果&#xff1a; 1. Flink是一個針對流數據和批數據的分布式處理引擎&#xff0c;同時支持原生流處理的開源框架。 - 延遲低(毫秒級)&#xff0c;且能夠保證消息傳輸不丟失不重復。 - 具有非常高的吞吐(每秒千萬級)。 - 支持原生流處理。…

echarts-convert.js使用

echarts-convert.js demo 點擊下載 1、本地安裝phantom.js插件 點擊下載 2、更改文件路徑 &#xff08;D:\phantomjs-2.1.1-windows\bin&#xff09;改為本地項目文件路徑 3、打開cmd命令行&#xff0c;并格式化語言 運行以下命令 將命令行語言改為中文簡體 chcp 65001…

(二分查找) 11. 旋轉數組的最小數字 ——【Leetcode每日一題】

?劍指 Offer 11. 旋轉數組的最小數字 難度&#xff1a;簡單 把一個數組最開始的若干個元素搬到數組的末尾&#xff0c;我們稱之為數組的旋轉。 給你一個可能存在 重復 元素值的數組 numbers &#xff0c;它原來是一個升序排列的數組&#xff0c;并按上述情形進行了一次旋轉…

springboot整合kafka多數據源

整合kafka多數據源 項目背景依賴配置生產者消費者消息體 項目背景 在很多與第三方公司對接的時候&#xff0c;或者處在不同的網絡環境下&#xff0c;比如在互聯網和政務外網的分布部署服務的時候&#xff0c;我們需要對接多臺kafka來達到我們的業務需求&#xff0c;那么當kafk…

【Vue-Router】路由過渡動效

在 Vue Router 中&#xff0c;你可以通過過渡動效&#xff08;Transition Effects&#xff09;為路由切換添加平滑的過渡效果&#xff0c;從而提升用戶體驗。過渡動效可以使用 Vue 的 <transition> 組件和 CSS 過渡來實現。 基本使用&#xff1a; 對導航使用動畫&#…

HTML-文本標簽

歷史上&#xff0c;網頁的主要功能是文本展示。所以&#xff0c;HTML 提供了大量的文本處理標簽。 <div> <div>是一個通用標簽&#xff0c;表示一個區塊&#xff08;division&#xff09;。它沒有語義&#xff0c;如果網頁需要一個塊級元素容器&#xff0c;又沒有…

leetcode 494. 目標和

2023.8.14 一杯茶&#xff0c;一包煙&#xff0c;一道dp做一天... ps&#xff1a;nums[i]均大于等于0。本題先轉化為0-1背包問題&#xff1a;將數組元素分成兩堆&#xff1a;一堆為正號&#xff0c;另一堆為負號。設正號堆的和為x&#xff0c;則負號堆的和為sum-x。&#xff08…