leetcode169.多數元素

題目描述

給定一個大小為 n 的數組 nums ,返回其中的多數元素。多數元素是指在數組中出現次數 大于 ? n/2 ? 的元素。

你可以假設數組是非空的,并且給定的數組總是存在多數元素。

題目解法

博耶-摩爾多數投票算法(英語:Boyer–Moore majority vote algorithm),中文常作多數投票算法、摩爾投票算法等,是一種用來尋找一組元素中占多數元素(出現次數??超過一半??的元素)的空間復雜度O(1)、時間復雜度O(n)算法。

該算法基于一個關鍵的觀察:??多數元素的出現次數大于其他所有元素出現次數之和??。它通過一種“??對抗抵消??”的策略來工作:

  • 將數組中的不同元素視為互相“抵消”。
  • 由于多數元素的數量占絕對優勢,無論怎么抵消,最后剩下的一定是多數元素。

通俗的說,可以將其想象成一場選舉:

  • 數組中的每個元素都是一張選票。
  • 算法維護一個候選人(candidate)和該候選人當前的票數(votes)。
  • 遍歷過程中,支持當前候選人的票會增加票數,反對票則減少票數。
  • 當票數歸零時,意味著當前候選人沒有任何優勢,于是更換新的候選人。
  • 由于多數元素的存在,最后獲選的候選人一定是多數元素。
class Solution {public int majorityElement(int[] nums) {int n = nums.length;int candidate = 0, votes = 0;for (int i = 0; i < n; i++) {if (votes == 0) {candidate = nums[i];votes = 1;} else if (nums[i] == candidate) {votes++;} else {votes--;}}return candidate;}
}

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

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

相關文章

基于機器學習的P2P網貸平臺信用違約預測模型

使用平臺提供的借款人信息&#xff08;年齡、收入、歷史信用等&#xff09;和借款信息&#xff0c;構建一個二分類模型來預測借款人是否會違約。重點解決類別不平衡問題和模型可解釋性。邏輯回歸、隨機森林、XGBoost、SMOTE過采樣、模型評估&#xff08;AUC, KS, F1-Score&…

豆瓣網影視數據分析與應用

源碼鏈接&#xff1a;點擊下載源碼 相關文檔&#xff1a;點擊下載相關文檔 摘 要 隨著互聯網的快速發展&#xff0c;豆瓣網作為一個綜合性的影視評分和評論平臺&#xff0c;積累了大量的用戶數據&#xff0c;這些數據為影視分析提供了豐富的素材。借助Hadoop這一大數據處理框…

四、計算機網絡與分布式系統(中)

一、局域網與廣域網1、局域網&#xff08;1&#xff09;定義將有限地理范圍內的多臺計算機通過傳輸媒體連接&#xff0c;借助網絡軟件實現設備間通信與資源共享的通信網絡&#xff08;2&#xff09;特點1.地理范圍小&#xff1a;通常為數百米至數公里內。2.傳輸速率高&#xff…

Python 面向對象實戰:私有屬性與公有屬性的最佳實踐——用線段類舉例

描述 在繪圖軟件、GIS、CAD 或簡單的圖形編輯器中&#xff0c;線段&#xff08;Segment&#xff09;是非常基礎的對象。每個線段有兩個端點&#xff08;x1,y1&#xff09;和&#xff08;x2,y2&#xff09;。在實現時我們通常希望&#xff1a; 封裝端點數據&#xff08;防止外部…

流式細胞術樣本處理全攻略(一):組織、血液、體液制備方法詳解

摘要 流式細胞術作為多參數、高通量的細胞分析技術,在細胞表型鑒定、免疫反應研究、疾病機制探索及藥物效果評估中發揮關鍵作用。而樣本制備是流式實驗成功的核心前提,需將不同來源樣本處理為單顆粒懸液,并最大程度減少細胞死亡與碎片干擾。本文針對組織、外周血 / 骨髓、體…

【C#】理解.NET內存機制:堆、棧與裝箱拆箱的底層邏輯及優化技巧

文章目錄前言一、棧與堆1.1 棧&#xff08;Stack&#xff09;1.1.1 基本信息1.1.2 特點1.2 堆&#xff08;Heap&#xff09;1.2.1 基本信息1.2.2 特點1.3 從代碼中窺見堆棧二、裝箱與拆箱2.1 裝箱2.2 拆箱2.3 如何避免不必要的裝箱與拆箱2.3.1 泛型集合2.3.2 泛型參數總結前言 …

人工智能學習:Transformer結構中的子層連接(Sublayer Connection)

Transformer結構中的子層連接(Sublayer Connection) 一、子層連接介紹 概念 子層連接(Sublayer Connection),也稱為殘差連接(Residual Connection),是Transformer模型中的一個關鍵設計,用于將多個子層(如自注意力層和前饋全連接層)組合在一起。它通過殘差連…

解鎖Roo Code的強大功能:深入理解上下文提及(Context Mentions)

在AI使用中&#xff0c;我們經常需要AI或AI工具描述代碼中的某個具體部分。但如果工具能直接“看到”所指的代碼、錯誤信息甚至終端輸出&#xff0c;協作效率會不會大幅提升&#xff1f;這正是 Roo Code 的“上下文提及&#xff08;Context Mentions&#xff09;”功能所要實現…

第5篇、 Kafka 數據可靠性與容錯機制

在分布式消息隊列系統中&#xff0c;數據可靠性 與 容錯能力 是核心指標。Kafka 作為高吞吐、可擴展的流式處理平臺&#xff0c;依靠副本復制、Leader 選舉和 ISR 機制&#xff0c;保證了在節點故障時消息依然能夠可靠傳輸與消費。 &#x1f4da; 目錄 理論基礎 一、數據復制…

Excel表格如何制作?【圖文詳解】表格Excel制作教程?電腦Excel表格制作?

一、問題背景 在日常辦公中&#xff0c;無論是統計數據、整理報表&#xff0c;還是記錄信息&#xff0c;Excel表格都是必不可少的工具。 但對新手來說&#xff0c;打開Excel后面對空白的單元格&#xff0c;常常不知道從何下手——不知道怎么選表格范圍、怎么加邊框讓表格顯形、…

阿里兵臨城下,美團迎來至暗時刻?

9月10日&#xff0c;趕在阿里巴巴成立26周年之際&#xff0c;高德地圖推出了首個基于用戶行為產生的榜單“高德掃街榜”&#xff0c;被定義為“阿里生活服務超級新入口”&#xff0c;試圖重新構建一套線下服務的信用體系。 上線第二天&#xff0c;就有媒體報道稱“使用高德掃街…

Android逆向學習(十一) IDA動態調試Android so文件

Android逆向學習&#xff08;十一&#xff09; IDA動態調試Android so文件 一、 寫在前面 這是吾愛破解論壇正己大大的第12個教程&#xff0c;并且發現一個神奇的事情&#xff0c;正己大大的教程竟然沒有第11個&#xff0c;感覺很奇怪 寫這個博客的主要原因是希望提供一種新的解…

Django全棧班v1.03 Linux常用命令 20250911 下午

課程定位 命令行 ! 黑客專屬。 這套視頻帶你從Linux小白到命令行大師&#xff0c;涵蓋文件管理文本處理系統監控網絡操作。 零基礎也能30分鐘掌握程序員必備的技能。 課程亮點 1、零基礎友好&#xff1a;從最基礎的ls&#xff0c;cd命令開始&#xff0c;循序漸進 2、實戰導向&a…

離線應用開發:Service Worker 與緩存

引言&#xff1a;離線應用開發在 Electron 中的 Service Worker 與緩存核心作用與必要性 在 Electron 框架的開發實踐中&#xff0c;離線應用開發是提升用戶體驗和應用可用性的關鍵技術&#xff0c;特別是使用 Service Worker 實現緩存和離線功能&#xff0c;結合 Node.js 處理…

英發睿能闖關上市:業績波動明顯,毅達創投退出,臨場“移民”

撰稿|張君來源|貝多商業&貝多財經近日&#xff0c;四川英發睿能科技股份有限公司&#xff08;下稱“英發睿能”&#xff09;遞交招股書&#xff0c;報考在港交所上市。據貝多商業&貝多財經了解&#xff0c;英發睿能還于9月3日披露《整體協調人公告&#xff0d;委任&…

Elixir通過Onvif協議控制IP攝像機,ExOnvif庫給視頻流疊加字符

Elixir 通過 ExOnvif 庫&#xff0c;Onvif 協議可以控制IP攝像機等設備&#xff0c;這篇文章記錄&#xff1a;使用ExOnvif庫&#xff0c;給視頻流疊加文字&#xff0c;使用ExOnvif庫的接口模塊&#xff1a;ExOnvif.Media、ExOnvif.Media2。 ExOnvif官方文檔 此文章內容&#xf…

線程安全相關的注解

主要有下面三個加在類上的線程安全相關的注解。一.Immutable標記一個類為不可變的。這意味著該類的實例在構造完成后&#xff0c;其狀態&#xff08;數據&#xff09;永遠不能被更改。實現不可變性的嚴格條件&#xff08;Java內存模型中的定義&#xff09;&#xff1a;所有字段…

基于Springboot + vue3實現的在線智慧考公系統

項目描述本系統包含管理員、教師、用戶三個角色。管理員角色&#xff1a;用戶管理&#xff1a;管理系統中所有用戶的信息&#xff0c;包括添加、刪除和修改用戶。配置管理&#xff1a;管理系統配置參數&#xff0c;如上傳圖片的路徑等。權限管理&#xff1a;分配和管理不同角色…

賦能高效設計:12套中后臺管理信息系統通用原型框架

中后臺管理信息系統是企業數字化轉型的核心引擎&#xff0c;肩負著提升運營效率、賦能精準決策的重任。面對多樣化的業務場景和復雜的邏輯需求&#xff0c;如何快速、高質量地完成系統設計與原型構建&#xff0c;成為產品、設計與開發團隊共同面臨的挑戰。 為此&#xff0c;一套…

LangGraph中ReAct模式的深度解析:推理與行動的完美融合——從理論到實踐的智能Agent構建指南

在人工智能的演進歷程中&#xff0c;ReAct&#xff08;Reasoning and Acting&#xff09;模式無疑是最具革命性的突破之一。它不僅僅是一種技術實現&#xff0c;更是對智能Agent思維模式的深刻重構。而LangGraph&#xff0c;作為這一理念的優秀實踐者&#xff0c;將ReAct模式演…