阿里巴巴找黃金寶箱(II) - 貪心思維

系列文章目錄

文章目錄

  • 系列文章目錄
  • 前言
  • 一、題目描述
  • 二、輸出描述
  • 三、輸入描述
  • 四、java代碼
  • 五、測試用例


前言

本人最近再練習算法,所以會發布自己的解題思路,希望大家多指教

一、題目描述

一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發現了強盜集團的藏寶地,藏寶地有編號從0-N的箱子,每個箱子上面貼有箱子中藏有金幣的數量。

從金幣數量中選出一個數字集合,并銷毀貼有這些數字的每個箱子,如果能銷毀一半及以上的箱子,則返回這個數字集合的最小大小。

二、輸出描述

一個數字字串,數字之間使用逗號分隔,例如: 6,6,6,6,3,3,3,1,1,5字串中數字的個數為偶數,并且

1 <= 字串中數字的個數 <= 100000

1 <= 每個數字 <= 100000

三、輸入描述

這個數字集合的最小大小,例如: 2

四、java代碼

	public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] array = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();Map<Integer, Integer> map = new HashMap<>();//存放每個數字,及對應出現的次數for (int i = 0; i < array.length; i++) {map.put(array[i], map.getOrDefault(array[i], 0) + 1);}//根據出現次數倒序排序map = map.entrySet().stream().sorted(Map.Entry.comparingByValue((o1, o2) -> o2 - o1)).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (o1,o2)->o1, LinkedHashMap::new));//獲取箱子數量的一半int mul = array.length / 2;//初始化箱子數量和int sum = 0;//初始化數字最小數量int num = 0;for (Map.Entry<Integer, Integer> entry : map.entrySet()) {num++;sum += entry.getValue();//箱子數量超過一半,則直接輸出最小數字集合大小if (sum >= mul) {System.out.println(num);return;}}}

五、測試用例

輸入:
1,2,3,4,5,5,5,4,4,3
輸出:
在這里插入圖片描述

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

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

相關文章

KUKA機器人專業名詞解釋

1、CCU Cabinet Control Unit &#xff08;控制柜控制單元&#xff09; 2、CIB Cabinet Interface Board &#xff08;控制柜接口板&#xff09; 3、HMI Human Machine Interface &#xff08;人機界面&#xff09;&#xff1b;KUKA.HMI 是 KUKA 操作界面。 4、KCB …

工作組PTH

文章目錄 簡述RID 500本地管理員密碼噴灑何為RIP 500 安全標識符SID與RIDPTH為何必須是RID 500CrackMapExec進行密碼噴灑 簡述 在工作組PTH中為什么只有administrator賬號可以,下面進行講解與利用。RID 500本地管理員密碼噴灑 何為RIP 500 安全標識符 安全標識符 安全標識符…

觸摸OpenNJet,云原生世界觸手可及

&#x1f308;個人主頁: Aileen_0v0 &#x1f525;熱門專欄: 華為鴻蒙系統學習|計算機網絡|數據結構與算法 ?&#x1f4ab;個人格言:“沒有羅馬,那就自己創造羅馬~” 文章目錄 導言OpenNJet云原生引擎介紹云原生平臺的介紹優化與創新 為什么選擇OpenNJet云原生引擎如何在windo…

Pytorch基礎:torch.cuda.set_device函數

相關閱讀 Pytorch基礎https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 torch.cuda.set_device函數用于設置當前使用的cuda設備&#xff0c;在當擁有多個可用的GPU且能被pytorch識別的cuda設備情況下&#xff08;環境變量CUDA_VISIBLE_…

【AI大模型】自動生成紅隊攻擊提示--GPTFUZZER

本篇參考論文為&#xff1a; Yu J, Lin X, Xing X. Gptfuzzer: Red teaming large language models with auto-generated jailbreak prompts[J]. arXiv preprint arXiv:2309.10253, 2023. https://arxiv.org/pdf/2309.10253 一 背景 雖然LLM在今天的各個領域得到了廣泛的運用…

計算方法實驗7:實現三次樣條插值算法

任務 point.txt文件中包含了21個壓鐵的位置信息 利用大M法計算出木條在壓鐵控制下的曲線&#xff0c;邊界條件取自然邊界條件&#xff1b;將第10個壓鐵的位置移動至(0,10)&#xff0c;計算出新的曲線&#xff0c;觀察每個區間內的三次函數是否改變。 算法 μ i M i ? 1 2 …

MacOS java多版本安裝與管理

Home - SDKMAN! the Software Development Kit Manager # 安裝sdkman curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk version正常出現sdkman版本號就安裝成功了 # 安裝java # 安裝java8 sdk install java 8.0…

論文筆記:僅一個進程故障就無法達成共識

僅一個進程故障就無法達成共識 僅一個進程故障指的是在異步的分布式系統中 摘要 異步系統的共識問題&#xff08;consensus&#xff09;涉及一組進程&#xff0c;其中有的進程可能不可靠&#xff08;unreliable&#xff09;。共識問題要求可靠的進程一致地從兩個侯選中決定&…

【MATLAB源碼-第207期】基于matlab的單相光伏并網系統仿真,并網策略采用基于擾動觀測法的MPPT模型和使用電壓電流雙閉環SPWM控制。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 本文將重點分析光伏發電最大功率點跟蹤&#xff08;MPPT&#xff09;技術和逆變器的并網控制技術&#xff0c;并在Simulink環境下建立模擬系統&#xff0c;以體現這些技術的應用與效果。文章結構如下&#xff1a;首先簡介光伏…

OpenAI下周發布更新;TikTok將自動標記AIGC;智譜AI亮相2024 ICLR

OpenAI 官宣下周舉辦直播發布更新 OpenAI 今日凌晨官宣&#xff0c;將在當地時間 5 月 13 日上午十點&#xff08;北京時間 5 月 14 日凌晨兩點&#xff09;在官網進行直播&#xff0c;屆時將演示一些 ChatGPT 和 GPT-4 的更新。 OpenAI CEO Sam Altman 補充表示&#xff0c;屆…

【算法刷題day44】Leetcode:518. 零錢兌換 II、377. 組合總和 Ⅳ

文章目錄 Leetcode 518. 零錢兌換 II解題思路代碼總結 Leetcode 377. 組合總和 Ⅳ解題思路代碼總結 草稿圖網站 java的Deque Leetcode 518. 零錢兌換 II 題目&#xff1a;518. 零錢兌換 II 解析&#xff1a;代碼隨想錄解析 解題思路 先遍歷物品&#xff0c;再遍歷背包。 代碼…

2024軟件測試面試必備面試題大全

1. 請自我介紹一下(需簡單清楚的表述自已的基本情況&#xff0c;在這過程中要展現出自信&#xff0c;對工作有激情&#xff0c;上進&#xff0c;好學) 面試官您好&#xff0c;我叫###&#xff0c;今年26歲&#xff0c;來自江西九江&#xff0c;就讀專業是電子商務&#xff0c;…

PCIE協議-2-事務層規范-MEM/IO/CFG request rules

2.2.7 內存、I/O和配置請求規則 以下規則適用于所有內存、I/O和配置請求。每種類型的請求還有特定的額外規則。 所有內存、I/O和配置請求除了常見的頭標字段外&#xff0c;還包括以下字段&#xff1a;requester ID[15:0]和Tag[9:0]&#xff0c;形成事務ID。Last DW BE[3:0] a…

ICode國際青少年編程競賽- Python-2級訓練場-列表遍歷

ICode國際青少年編程競賽- Python-2級訓練場-列表遍歷 1、 for i in range(3):Flyer[i].step(2) Dev.step(6)2、 for i in range(7):Flyer[i].step() Dev.step(Item.x - Dev.x)3、 for i in range(3):Flyer[i].step(1) Dev.step(4) Dev.turnLeft() Dev.step(2) Dev.turnL…

【APM】在Kubernetes中搭建OpenTelemetry+Loki+Tempo+Grafana鏈路追蹤(一)

文章目錄 1、最終效果2、前提準備2、環境信息3、服務集成&#xff08;Opentelemetry ->Tempo&#xff09;3.1 上報鏈路數據3.1.1 下載opentelemetry-agent3.1.2 啟動配置業務app3.1.3 配置opentelemetry輸入輸出3.1.4 配置grafana datasource3.1.4.1 配置tempo3.1.4.2 配置l…

快速判斷出485從站設備是否支持MODBUS RTU無線通訊

對于變頻器和儀表設備&#xff0c;都支持485串口通訊&#xff0c;那么怎么判斷從站設備支持那種協議呢&#xff1f;通常分為兩種方式去判斷&#xff1a;1.從設備參數參看2.從設備通訊報文查看。本次文章以以臺達MH300系列變頻器為例。 1.從設備通訊參數查看 使用設備之前一定…

資料如何打印更省錢

在日常工作和學習中&#xff0c;我們經常需要打印各種資料。然而&#xff0c;隨著打印成本的不斷提高&#xff0c;如何更省錢地打印資料成為了大家關注的焦點。今天&#xff0c;就為大家分享一些資料打印的省錢技巧&#xff0c;并推薦一個省錢又省心的打印平臺。 首先&#xff…

【話題】軟件開發的航海圖:程序員的實用神器探秘

大家好&#xff0c;我是全棧小5&#xff0c;歡迎閱讀小5的系列文章&#xff0c;這是《話題》系列文章 目錄 背景一、代碼編寫二、版本控制三、測試與調試四、部署與運維五、總結文章推薦 背景 在軟件開發的廣闊海洋中&#xff0c;每一位程序員都是一位勇敢的航海家&#xff0c…

大模型日報2024-05-13

大模型日報 2024-05-13 大模型資訊 谷歌推出Gemini生成式AI平臺 摘要: 生成式人工智能正在改變我們與技術的互動方式。谷歌最近推出了名為Gemini的新平臺&#xff0c;該平臺代表了其在生成式AI領域的最新進展。Gemini平臺集成了一系列先進的工具和功能&#xff0c;旨在為用戶提…

什么是圖片的像素與分辨率?

什么是像素像素是組成圖像的最小單元&#xff0c;把圖片放大到一定程度&#xff0c;你可以看到許多小方塊&#xff0c;一個方塊就是一個像素&#xff0c;這些小方塊都有一個明確的位置和被分配的色彩數值一個個的小方塊拼合起來&#xff0c;就決定圖像所呈現出來的樣子。 像素…