華為od機試C卷-開源項目熱度榜單

我的喵

1、題目描述

某個開源社區希望將最近熱度比較高的開源項目出一個榜單,推薦給社區里面的開發者。
對于每個開源項目,開發者可以進行關注(watch)、收藏(star)、fork、提issue、提交合并請求(MR)等。
數據庫里面統計了每個開源項目關注、收藏、fork、issue、MR的數量,開源項目的熱度根據這5個維度的加權求和進行排序。
H = (Wwatch * #watch) + (Wstar * #star) + (Wfork * #fork) + (Wissue * #issue) + (Wmr * #mr)
H表示熱度值
Wwatch、Wstar、Wfork、Wissue、Wmr分別表示5個統計維度的權重。
#watch、#star、#fork、#issue、#mr分別表示5個統計維度的統計值。

榜單按照熱度值降序排序,對于熱度值相等的,按照項目名字轉換為全小寫字母后的字典序排序(‘a’,‘b’,‘c’,…,‘x’,‘y’,‘z’)。

輸入描述
第一行輸入為N,表示開源項目的個數,0 < N <100。

第二行輸入為權重值列表,一共 5 個整型值,分別對應關注、收藏、fork、issue、MR的權重,權重取值 0 < W ≤ 50。

第三行開始接下來的 N 行為開源項目的統計維度,每一行的格式為:

name nr_watch nr_start nr_fork nr_issue nr_mr

其中 name 為開源項目的名字,由英文字母組成,長度 ≤ 50,其余 5 個整型值分別為該開源項目關注、收藏、fork、issue、MR的數量,數量取值 0 < nr ≤ 1000。

輸出描述
按照熱度降序,輸出開源項目的名字,對于熱度值相等的,按照項目名字轉換為全小寫后的字典序排序(‘a’ > ‘b’ > ‘c’ > … > ‘x’ > ‘y’ > ‘z’)。

2、解法

import java.util.Comparator;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;// 注意類名必須為 Main, 不要有任何 package xxx 信息
public class Main1 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt(); //讀取項目數int[] weights = new int[5]; //讀取權重for (int i = 0; i < weights.length; i++) {weights[i] = in.nextInt();}Map<String, String> hotMap = new TreeMap<>(new MyComparator());for (int i = 0; i < n; i++) {int tempHot = 0;String tempName = in.next();for (int j = 0; j < weights.length; j++) {tempHot += weights[j] * in.nextInt();}hotMap.put(tempName+"_"+tempHot, tempName);}for (Map.Entry<String, String> prjEntry : hotMap.entrySet()) {System.out.println(prjEntry.getValue());}}public static int compareStr(String str1, String str2) {str1 = str1.toLowerCase();str2 = str2.toLowerCase();int len = str1.length() > str2.length() ? str2.length() : str1.length();int i = 0;for (; i < len; i++) {if (str1.charAt(i) < str2.charAt(i)) {return 1;} else if (str1.charAt(i) == str2.charAt(i)) {continue;} else if (str1.charAt(i) > str2.charAt(i)) {return -1;}}return 0;}public static class MyComparator implements Comparator<String> {@Overridepublic int compare(String k1, String k2) {String k1Name = k1.split("_")[0];int k1Hot = Integer.parseInt(k1.split("_")[1]);String k2Name = k2.split("_")[0];int k2Hot = Integer.parseInt(k2.split("_")[1]);if (k1Hot < k2Hot) {return 1;} else if (k1Hot == k2Hot) {if (compareStr(k1Name, k2Name) > 0) {return 1;} else if (compareStr(k1Name, k2Name) == 0) {return 1;} else if (compareStr(k1Name, k2Name) < 0) {return -1;}} else {return -1;}return 0;}}
}

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

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

相關文章

微服務API網關---APISIX

最近在做微服務調研&#xff0c;看到了apisix這個網關&#xff0c;于是進行了初步了解一下。 微服務是指&#xff0c;將大型應用分解成多個獨立的組件&#xff0c;其中每個組件都各自的負責對應項目。 系統的架構大致經歷了&#xff1a;單體應用架構–> SOA架構 -->微服務…

Linux多線程服務端編程:使用muduo C++網絡庫 學習筆記 附錄D 關于TCP并發連接的幾個思考題與試驗

前幾天作者在新浪微博上出了兩道有關TCP的思考題&#xff0c;引發了一場討論&#xff08;http://weibo.com/1701018393/eCuxDrtaONn&#xff09;。 第一道初級題目是&#xff1a;有一臺機器&#xff0c;它有一個IP&#xff0c;上面運行了一個TCP服務程序&#xff0c;程序只偵聽…

StarRocks實戰——松果出行實時數倉實踐

目錄 一、背景 二、松果出行實時OLAP的演進 2.1 實時數倉1.0的架構 2.2 實時數倉2.0的架構 2.3 實時數倉3.0的架構 三、StarRocks 的引入 四、StarRocks在松果出行的應用 4.1 在訂單業務中的應用 4.2 在車輛方向的應用 4.3 StarRocks “極速統一” 落地 4.4 StarRoc…

Lambda、Function、StreamAPI詳解

目錄 1、Lambda 2、Function 3、StreamAPI 中間操作&#xff1a;Intermediate Operations 終止操作&#xff1a;Terminal Operation 1、Lambda Java8語法糖&#xff1a;參數列表 箭頭 方法體 package com.atguiggu.lambda;import java.util.*; import java.util.funct…

分布式ID生成系統之雪花算法詳解

在當今的云計算和微服務架構盛行的時代&#xff0c;分布式系統已成為軟件開發的重要組成部分。隨著系統規模的擴大和業務的復雜化&#xff0c;對數據一致性和唯一性的要求也越來越高&#xff0c;尤其是在全局唯一標識符&#xff08;ID&#xff09;的生成上。因此&#xff0c;分…

代碼隨想錄算法訓練營Day48 | 121.買賣股票的最佳時機、122.買賣股票的最佳時機 II

121.買賣股票的最佳時機 &#xff08;想寫動態規劃寫著寫著變成貪心了&#xff09; 半貪心半動規&#xff1a; int maxProfit(vector<int>& prices) {vector<int> dp(prices.size(), 0);int minVal prices[0];for (int i 1; i < prices.size(); i) {//…

yolov5訓練太慢的解決方案

問題原因 訓練太慢大多是因為沒有安裝CUDA和pytorch&#xff0c;導致的只有cpu在跑&#xff0c;顯卡沒跑 這就是很典型的。 解決方案 第一步&#xff1a;安裝CUDA 在本機上面安裝CUDA,記住只有N卡可以安裝&#xff0c;一開始的電腦是自帶CUDA的。 如果不是自帶的CUDA&…

Apache Paimon Flink引擎解析

Paimon 支持 Flink 1.17, 1.16, 1.15 和 1.14&#xff0c;當前 Paimon 提供了兩類 Jar 包&#xff0c;一類支持數據讀寫&#xff0c;另一類支持其它操作&#xff08;compaction&#xff09; Version Type Jar Flink 1.18 Bundled Jar paimon-flink-1.18-0.7…

SentenceTransformer簡單使用

SentenceTransformer簡單使用 1 SentenceTransformer介紹 SentenceTransformer主要用于對句子、文本和圖像進行嵌入。可用于文本和圖像的相似度對比查找等 # SentenceTransformer官網地址 https://www.sbert.net/# 安裝SentenceTransformer pip install -U sentence-transfo…

求數字的每一位之和

求數字的每一位之和 題目描述&#xff1a;解法思路&#xff1a;解法代碼&#xff1a;運行結果&#xff1a; 題目描述&#xff1a; 輸入一個整數m&#xff0c;求這個整數m的每?位之和&#xff0c;并打印。 測試1&#xff1a; 輸?&#xff1a;1234 輸出&#xff1a;10 測試2&…

土壤侵蝕量化評估

根據之前的文章,已經算出了R、K、LS、C、P 現在計算土壤侵蝕,將幾個前期制作好的因子的TIFF文件,用柵格計算器相乘 發現局部地區存在輕度侵蝕,大部分區域是微度侵蝕 然后對比了一下范圍 其中的幾個因子都在文獻范圍內,說明計算結果并未出錯,可能就是研究區正常范圍和結…

6020一拖二快充線:手機充電的革命性創新

在快節奏的現代生活中&#xff0c;手機已不僅僅是一個通訊工具&#xff0c;更是我們工作、學習和娛樂的得力助手。然而&#xff0c;手機的電量問題一直是困擾著我們的難題。為了解決這個問題&#xff0c;市場上出現了一種名為“一拖二快充線”的充電設備&#xff0c;它不僅具備…

etcd入門-(1)安裝篇

一、etcd安裝 https://github.com/etcd-io/etcd/releases 根據需要下載安裝etcd, 確保添加到環境變量 執行 etcd -v 查看安裝版本 二、etcd運行 本地運行集群 1.首先安裝goreman go install github.com/mattn/goremanlatest2.準備Procfile 將腳本下載到本地&#xff0c;或者復…

八. 實戰:CUDA-BEVFusion部署分析-分析BEVFusion中各個ONNX

目錄 前言0. 簡述1. camera.backbone.onnx(fp16)2. camera.backbone.onnx(int8)3. camera.vtransform.onnx(fp16)4. fuser.onnx(fp16)5. fuser.onnx(int8)6. lidar.backbone.xyz.onnx7. head.bbox.onnx(fp16)總結下載鏈接參考 前言 自動駕駛之心推出的《CUDA與TensorRT部署實戰…

每日一類:Qt中的萬能容器

在Qt框架中&#xff0c;QVariant類扮演著一個非常重要的角色。它是一個萬能容器類&#xff0c;可以存儲Qt中的任何基本類型數據&#xff0c;包括自定義類型。這種靈活性使得QVariant成為Qt編程中不可或缺的工具&#xff0c;特別是在需要處理不同類型數據或進行對象間通信時。 …

Unity UGUI之Scrollbar基本了解

Unity的Scrollbar組件是用于在UI中創建滾動條的組件之一。滾動條通常與其他可滾動的UI元素&#xff08;如滾動視圖或列表&#xff09;一起使用&#xff0c;以便用戶可以在內容超出可見區域時滾動內容。 以下是Scrollbar的基本信息和用法: 1、創建 在Unity的Hierarchy視圖中右…

柯西矩陣介紹

經典定義 柯西矩陣&#xff08;Cauchy Matrix&#xff09;&#xff0c;是一種特殊類型的矩陣&#xff0c;它在數學中的多個領域&#xff0c;包括線性代數、數值分析和插值理論中都有重要應用。柯西矩陣以19世紀法國數學家奧古斯丁-路易柯西的名字命名。 柯西矩陣是一個方陣&am…

Krylov matrix

Krylov矩陣是一種在數值線性代數中使用的矩陣&#xff0c;尤其是在迭代解法中用于求解線性方程組、特征值問題和其他線性代數問題。它是由俄國數學家阿列克謝尼古拉耶維奇克雷洛夫&#xff08;Alexei Nikolaevich Krylov&#xff09;的名字命名的。 Krylov子空間由以下形式的矩…

jetson nano——編譯安裝opencv==4.4

目錄 1.下載源碼&#xff0c;我提供的鏈接如下&#xff1a;1.1文件上傳的路徑位置&#xff0c;注意ymck是我自己的用戶名&#xff08;你們自己換成你們自己相對應的就行&#xff09; 2.解壓文件3.安裝依賴4.增加swap交換內存4.1臨時增加交換內存swap4.2永久增加swap 5.安裝open…

2024-03-03 作業

作業要求&#xff1a; 1.使用fwrite、fread將一張隨意的bmp圖片&#xff0c;修改成德國的國旗 2.使用提供的getch函數&#xff0c;編寫一個專門用來輸入密碼的函數&#xff0c;要求輸入密碼的時候&#xff0c;顯示 * 號&#xff0c;輸入回車的時候&#xff0c;密碼輸入結束 作業…