能量石[算法題]

題目來源:第十五屆藍橋杯大賽軟件賽省賽Java 大學 B 組(算法題)

可以參考一下,本人也是比較菜

不喜勿噴,求求求

?
import java.util.Scanner;?public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 讀取小伙伴的數量int n = scanner.nextInt();long[] a = new long[n];long min = Long.MAX_VALUE;// 讀取每個小伙伴的能量晶石數量,并找出最小值for (int i = 0; i < n; i++) {a[i] = scanner.nextLong();if (a[i] < min) {min = a[i];}}long moves = 0;// 計算每個小伙伴與最小值的差值,并累加for (int i = 0; i < n; i++) {moves += a[i] - min;}System.out.println(moves);scanner.close();}}

解題思路:

為了使所有小伙伴的能量晶石數量相同,我們可以通過數學推導發現,最終的操作次數可以通過計算每個小伙伴的能量晶石數量與一個固定值的差值的絕對值之和來得到。

我們可以先找到初始能量晶石數量最少的小伙伴,以他為基準,讓其他小伙伴去補充能量,這樣可以保證操作次數最少。

復雜度分析

  • 時間復雜度O(n),其中 n 是小伙伴的數量。主要時間開銷在于讀取輸入和遍歷數組計算差值。

  • 空間復雜度O(n),主要用于存儲每個小伙伴的能量晶石數量。

有更好的方法歡迎留言和交流

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

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

相關文章

馬爾科夫不等式和切比雪夫不等式

前言 本文隸屬于專欄《機器學習數學通關指南》&#xff0c;該專欄為筆者原創&#xff0c;引用請注明來源&#xff0c;不足和錯誤之處請在評論區幫忙指出&#xff0c;謝謝&#xff01; 本專欄目錄結構和參考文獻請見《機器學習數學通關指南》 正文 統計概率的利劍&#xff1a;掌…

基于 STC89C52 的 8x8 點陣顯示漢字

一、引言 在電子信息顯示領域,漢字的直觀呈現為信息傳遞帶來極大便利。8x8 點陣雖顯示空間有限,但通過合理設計,能夠清晰展示一些常用、簡單的漢字,豐富電子設備的交互界面。STC89C52 單片機作為一款經典且應用廣泛的微控制器,以其成本低廉、易于開發的特性,成為驅動 8x…

二進制、八進制、十進制和十六進制間的轉換(原理及工程實現)

在計算機科學和編程中&#xff0c;進制轉換是一個非常重要的基礎知識。無論是二進制、八進制、十進制還是十六進制&#xff0c;它們在不同的場景中都有廣泛的應用。本文將詳細介紹常用進制之間的轉換方法&#xff0c;并附上C語言示例代碼&#xff0c;幫助大家更好地理解和掌握這…

從零開始的 Kafka 學習(二)| 集群啟動

1. 相關概念 1.1 代理&#xff1a;Broker 使用Kafka前&#xff0c;我們都會啟動Kafka服務進程&#xff0c;這里的Kafka服務進程我們一般會稱之為Kafka Broker 或 Kafka Server。因為Kafka是分布式消息系統所以再實際的生產環境中&#xff0c;是需要多個服務進程形成集群提供消…

python如何隨機產生一堆數字并輸出

python隨機產生一堆數字并輸出的方法&#xff1a; 通過for循環語句多次執行for循環里面的“random.randint()”函數產生隨機數。將產生的隨機數賦值給變量&#xff0c;輸出這個變量就可以了 執行結果如下&#xff1a;

vue3與react、 react hooks

一、Vue3新特性&#xff1a;setup、ref、reactive、computed、watch、watchEffect函數、生命周期鉤子、自定義hooks函數、toRef和toRefs、shallowReactive 與 shallowRef、readonly 與 shallowReadonly、toRaw 與 markRaw、customRef、provide 與 inject、Fragment、Teleport、…

《基于WebGPU的下一代科學可視化——告別WebGL性能桎梏》

引言&#xff1a;科學可視化的算力革命 當WebGL在2011年首次亮相時&#xff0c;它開啟了瀏覽器端3D渲染的新紀元。然而面對當今十億級粒子模擬、實時物理仿真和深度學習可視化需求&#xff0c;WebGL的架構瓶頸日益凸顯。WebGPU作為下一代Web圖形標準&#xff0c;通過顯存直存、…

寵物醫療對接DeepSeek詳細方案

基于DeepSeek本地化部署技術與醫療場景優化實踐 一、核心架構設計 1. 本地化部署與數據安全 私有化服務器部署:將DeepSeek模型部署在寵物醫院本地服務器,所有診療數據(如寵物病歷、影像報告)均存儲于院內,避免云端傳輸風險數據加密機制:采用AES-256加密算法對醫療數據加…

K8s 1.27.1 實戰系列(一)準備工作

一、主機規劃與硬件要求 1、節點數量 至少需要 3 臺服務器(1 臺 Master 節點,2 臺 Worker 節點)。本地測試可縮容:若僅用于測試,可縮減為 1 個 Master 和 1 個 Worker,但需注意穩定性風險。2、硬件配置 ?Master 節點:建議 2 核 CPU、8GB 內存、80GB 硬盤。?Worker 節…

2.PSCAD是什么軟件?

PSCAD&#xff08;Power Systems Computer Aided Design&#xff09;是一款功能強大的電力系統仿真軟件&#xff0c;廣泛應用于電力系統的建模、仿真和分析。它結合了電磁暫態仿真引擎EMTDC&#xff08;Electromagnetic Transients including DC&#xff09;&#xff0c;能夠精…

Stable Diffusion模型Pony系列模型深度解析

Stable Diffusion模型Pony系列模型深度解析 一、技術架構與核心特性 基于SDXL的深度優化 Pony系列模型以SDXL為基礎框架&#xff0c;通過針對二次元/動漫風格的微調&#xff0c;強化了在該領域的生成能力&#xff0c;同時保留了對寫實場景的兼容性?。其訓練數據特別側重于人…

FastGPT 引申:混合檢索完整實例

文章目錄 FastGPT 引申&#xff1a;混合檢索完整實例1. 各檢索方式的初始結果2. RRF合并過程3. 合并后的結果4. Rerank重排序后5. 最終RRF合并6. 內容總結 FastGPT 引申&#xff1a;混合檢索完整實例 下邊通過一個簡單的例子說明不同檢索方式的分值變化過程&#xff0c;假設我…

在MATLAB環境中,對矩陣拼接(Matrix Concatenation)的測試

在MATLAB環境中&#xff0c;對矩陣拼接&#xff08;Matrix Concatenation&#xff09;的正確性與魯棒性開展測試時&#xff0c;需要依據不同的拼接場景精心設計測試用例&#xff0c;全面驗證矩陣維度、數據順序、邊界條件以及異常處理等關鍵方面。以下是詳盡的測試方法與具體示…

OpenFeign 學習筆記

OpenFeign 學習筆記 一、基礎入門 1.1 簡介 OpenFeign 是基于聲明式的 REST 客戶端&#xff0c;用于簡化服務間遠程調用。&#xff08;編程式 REST 客戶端&#xff08;RestTemplate&#xff09;&#xff09; 通過接口注解方式定義 HTTP 請求&#xff0c;自動實現服務調用。 …

“沂路暢通”便利服務平臺:賦能同城物流,構建高效暢通的貨運生態

“沂路暢通”便利服務平臺&#xff1a;賦能同城物流&#xff0c;構建高效暢通的貨運生態 隨著城市化進程的加速&#xff0c;同城物流需求迅速增長&#xff0c;然而貨運過程中仍然存在信息不對稱、資源浪費、司機服務體驗差等痛點。臨沂呆馬區塊鏈網絡科技有限公司&#xff08;…

去除HTML有序列表(ol)編號的多種解決方案

以下是去除HTML有序列表(ol)編號的多種解決方案&#xff1a; <!DOCTYPE html> <html> <head> <style> /* 基礎方案&#xff1a;完全移除編號 */ ol.no-number {list-style-type: none; /* 移除默認編號 */padding-left: 0; /* 移除默認縮進 */…

es如何進行refresh?

在 Elasticsearch 中,refresh 操作的作用是讓最近寫入的數據可以被搜索到。以下為你介紹幾種常見的執行 refresh 操作的方式: 1. 使用 RESTful API 手動刷新 你可以通過向 Elasticsearch 發送 HTTP 請求來手動觸發 refresh 操作。可以針對單個索引、多個索引或者所有索引進…

Leetcode 57: 插入區間

Leetcode 57: 插入區間 問題描述&#xff1a; 給定一個非重疊的區間集合 intervals&#xff08;按開始時間升序排列&#xff09;和一個新的區間 newInterval&#xff0c;將新的區間插入到區間集合中并合并重疊的部分&#xff0c;最后返回結果區間集合。 適合面試的解法&#x…

爬蟲面試:關于爬蟲破解驗證碼的13個經典面試題

更多內容請見: 爬蟲和逆向教程-專欄介紹和目錄 文章目錄 1. ?什么是驗證碼(CAPTCHA)?它的作用是什么?2. ?常見的驗證碼類型有哪些?3. ?在爬蟲開發中,遇到驗證碼時通常有哪些解決方案?4. ?如何使用第三方驗證碼識別服務?請舉例說明。5. ?訓練自己的驗證碼識別模型…

Kylin麒麟操作系統服務部署 | NFS服務部署

以下所使用的環境為&#xff1a; 虛擬化軟件&#xff1a;VMware Workstation 17 Pro 麒麟系統版本&#xff1a;Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、 NFS服務概述 NFS&#xff08;Network File System&#xff09;&#xff0c;即網絡文件系統。是一種使用于…