牛客網NC22222:超半的數

牛客網NC22222:超半的數

題目描述

在這里插入圖片描述

輸入輸出格式

輸入格式:

  • 第一行包含一個整數 n (1 ≤ n ≤ 1000)
  • 第二行包含 n 個整數 a_i (1 ≤ a_i ≤ 10^9)

輸出格式:

  • 輸出一個整數,表示出現次數超過一半的那個數

解題思路

這道題目有多種解法,本文實現的是最直觀的暴力解法。我們對數組中的每個元素,統計它在數組中出現的次數,如果發現某個元素出現次數超過 n/2,則輸出該元素并結束程序。

算法流程

  1. 讀取數組大小 n 和數組元素
  2. 對于數組中的每個元素 a[i]:
    • 統計 a[i] 在整個數組中出現的次數
    • 如果出現次數大于 n/2,則輸出 a[i] 并結束程序

復雜度分析

  • 時間復雜度:O(n2),其中 n 是數組大小。我們需要遍歷數組中的每個元素,然后對每個元素再次遍歷數組統計頻次。
  • 空間復雜度:O(n),用于存儲輸入數組。

代碼實現

#include<bits/stdc++.h>
using namespace std;int main(){int n;cin>>n;int a[n];// 讀取數組元素for(int i=1;i<=n;i++){cin>>a[i];}// 尋找出現次數超過一半的元素for(int i=1;i<=n;i++){int s=0;//每次外層循環遍歷新元素 a[i] 時,會重新聲明并初始化 s=0,確保統計該元素的出現次數時計數器 s 是從零開始累加的for(int j=1;j<=n;j++){if(a[i]==a[j])s++;}if(s>n/2){cout<<a[i];break;}}return 0;
}

示例解析

以示例 1 為例:

輸入:
5
1 2 2 3 2輸出:
2

執行過程:

  1. 讀取 n=5,數組為 [1,2,2,3,2]
  2. 對于 a[1]=1,統計出現次數為 1,不超過 5/2=2
  3. 對于 a[2]=2,統計出現次數為 3,超過 5/2=2
  4. 輸出 2 并結束程序

優化思路

雖然本題的暴力解法已經能夠解決問題,但當數據規模增大時,可能會超時。以下是一些可能的優化方向:

  1. 哈希表計數:使用哈希表統計每個元素出現的次數,將時間復雜度降至 O(n)
  2. 摩爾投票算法:專門用于找出出現次數超過一半的元素,時間復雜度為 O(n),空間復雜度為 O(1)

注:根據題目要求,本文僅對原有解法進行分析和講解,未對算法本身進行優化。

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

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

相關文章

開發日常中的抓包工具經驗談:Charles 抓包工具與其它選項對比

開發日常中的抓包工具經驗談&#xff1a;HTTPS調試怎么選&#xff1f; 在移動開發或Web API聯調時&#xff0c;網絡請求常常成為問題定位的第一難題。尤其是面對加密的 HTTPS 請求&#xff0c;傳統瀏覽器調試工具已顯得力不從心。 我們團隊最近在排查一個安卓應用中的支付延遲…

哈希表實現(1):

1. 哈希&#xff1a; 之前我們的紅黑數的查找是由于左邊小右邊大的原則可以快速的查找&#xff0c;我們這里的哈希表呢&#xff1f; 這里是用過哈希函數把關鍵字key和存儲位置建立一個關聯的映射。 直接定址法&#xff08;函數函數定義的其中一種&#xff09;&#xff1a; 直…

泰迪杯特等獎案例深度解析:基于多級二值化與CNN回歸的車牌識別系統設計

(第八屆泰迪杯數據挖掘挑戰賽特等獎案例全流程拆解) 一、案例背景與核心挑戰 1.1 行業痛點與場景需求 在智慧交通與無感支付場景中,車牌識別是核心環節。傳統車牌識別系統在復雜光照、污損車牌、多角度傾斜等場景下存在顯著缺陷。根據某智慧油站2024年運營數據顯示,高峰期…

光學變焦和數字變倍模塊不同點概述!

一、光學變焦與數字變倍模塊的不同點 1. 物理基礎 光學變焦&#xff1a;通過調整鏡頭組中鏡片的物理位置改變焦距&#xff0c;實現無損放大。例如&#xff0c;上海墨揚的MF-STAR吊艙采用30倍光學變焦鏡頭&#xff0c;焦距范圍6~180mm&#xff0c;等效焦距可達997mm。 數字…

ECMAScript標準:JavaScript的核心

什么是ECMAScript&#xff1f; ECMAScript&#xff08;簡稱ES&#xff09;是一個由ECMA國際&#xff08;歐洲計算機制造商協會&#xff09;制定的腳本語言標準&#xff0c;它為JavaScript、JScript和ActionScript等腳本語言提供了基礎規范。JavaScript 可以視為 ECMAScript 的…

小白學AI DeepSeep 部署中的常見問題及解決方法

在部署 DeepSeek(或類似的大模型/AI 系統)時,可能會遇到多種技術或環境相關的問題。以下是常見問題及對應的解決方案,結合實際部署經驗總結: 文章目錄 前言一、 硬件資源不足二、環境配置問題三、模型加載或推理失敗四、網絡或分布式訓練問題五、數據加載或預處理問題六、…

redis數據結構-11(了解 Redis 持久性選項:RDB 和 AOF)

了解 Redis 持久性選項&#xff1a;RDB 和 AOF Redis 提供了多個持久性選項&#xff0c;以確保數據持久性并防止在服務器發生故障或重啟時丟失數據。了解這些選項對于為您的特定使用案例選擇正確的策略、平衡性能和數據安全至關重要。本章節將深入探討 Redis 中的兩種主要持久…

LLaMA-Factory:環境準備

一、硬件和系統 操作系統: Ubuntu 24.04.2 LTS&#xff08;64位&#xff09;GPU: NVIDIA RTX 4090 筆記本 GPU&#xff0c;16GB顯存CPU: 建議高性能多核 CPU&#xff08;如 Intel i7/i9 或 AMD Ryzen 7/9&#xff09;以支持數據預處理&#xff0c;我的是32核。RAM: 至少 32GB&…

2025 uniapp的請求封裝工具類以及使用【拿來就用】

一、創建一個http請求封裝的js文件&#xff0c;名字自定義&#xff1a;my_http.js /*** 基礎API請求地址&#xff08;常量&#xff0c;全大寫命名規范&#xff09;* type {string}* constant*/ let BASE_URL //通過環境來判斷基礎路徑 if (process.env.NODE_ENV development…

Qt應用程序啟動時的一些思路:從單實例到性能優化的處理方案

程序啟動時優化的價值 在桌面軟件開發領域,應用程序的啟動過程就像音樂的序曲,決定了用戶對軟件品質的第一印象。比如首次啟動等待超過3秒時,會讓大多數用戶產生負面看法,而專業工具軟件的容忍閾值甚至更低。Qt框架作為跨平臺開發的利器,其啟動過程的優化不僅關乎用戶體驗…

Node.js入門指南:開啟JavaScript全棧開發之旅

Hi&#xff0c;我是布蘭妮甜 &#xff01;Node.js讓JavaScript突破了瀏覽器的限制&#xff0c;成為全棧開發的利器。作為基于V8引擎的高性能運行時&#xff0c;它徹底改變了JavaScript只能做前端開發的局面。本文將帶你快速掌握Node.js的核心用法&#xff1a;環境搭建與模塊系統…

MySQL MCP 使用案例

## 概述 MySQL MCP&#xff08;MySQL Multi-Channel Protocol&#xff09;是MySQL的多通道協議實現&#xff0c;提供了高效的數據庫連接池和負載均衡功能。本文檔將介紹MySQL MCP的基本使用方法和常見案例。 ## 環境準備 ### 安裝MySQL MCP bash pip install mysql-mcp ### 基…

基于 React Hook 封裝 Store 的三種方案

基于 React Hook 封裝 Store 的三種方案 方案一&#xff1a;基于 useSyncExternalStore 的輕量級 Store&#xff08;推薦&#xff09; import { useSyncExternalStore } from react;type Store<T> {state: T;listeners: Set<() > void>; };function createSt…

MySQL 8.0 OCP 1Z0-908 131-140題

Q131.You have upgraded the MySQL binaries from 5.7.28 to 8.0.18 by using an in-place upgrade. Examine the message sequence generated during the first start of MySQL 8.0.18: 。。。[System]。。。/usx/sbin/mysqld (mysqld 8.0.18-commercial) starting as process…

正向代理和反向代理的區別?

前言 在現代網絡架構中&#xff0c;代理服務器扮演著至關重要的角色。無論是企業網絡還是互聯網服務&#xff0c;代理技術都廣泛應用以提高性能、安全性和可管理性。正向代理和反向代理是兩種最常見的代理類型&#xff0c;雖然它們都作為中間人處理客戶端和服務器之間的通信&am…

技術融資:概念與形式、步驟與案例、挑戰與應對、發展趨勢

一、技術融資概述 技術融資是指通過外部資金支持技術研發、產品開發或市場擴展的過程。它通常涉及風險投資、天使投資、私募股權、眾籌等多種形式。技術融資的核心目標是為技術創新提供資金保障&#xff0c;推動技術從概念到市場的轉化。 技術融資的主要形式包括以下幾種&…

從硬件角度理解“Linux下一切皆文件“,詳解用戶級緩沖區

目錄 前言 一、從硬件角度理解"Linux下一切皆文件" 從理解硬件是種“文件”到其他系統資源的抽象 二、緩沖區 1.緩沖區介紹 2.緩沖區的刷新策略 3.用戶級緩沖區 這個用戶級緩沖區在哪呢&#xff1f; 解釋關于fork再加重定向“>”后數據會打印兩份的原因 4.內核緩沖…

車道線檢測----CLRERNet

CLRerNet&#xff1a;利用LaneIoU提升車道檢測置信度 摘要 車道標檢測在自動駕駛和駕駛輔助系統中至關重要。現代深度車道檢測方法在車道檢測基準測試中表現出色。通過初步的預言機實驗&#xff0c;我們首次拆解車道表示組件以確定研究方向。我們表明&#xff0c;正確的車道位…

ML307R 的 USB Vendor ID (VID):0x2ECC ML307R 的 USB Product ID (PID):0x3012

可以的&#xff0c;在文檔的「Table 3. VID、PID查詢表」中明確指出&#xff1a; ML307R 的 USB Vendor ID (VID)&#xff1a;0x2ECCML307R 的 USB Product ID (PID)&#xff1a;0x3012 你可以將這對 VID/PID 加到 Linux 的 option 驅動中&#xff0c;比如&#xff1a; ech…

論信息系統項目的范圍管理

論信息系統項目的范圍管理 前言一、規劃范圍管理&#xff0c;收集需求二、定義范圍三、創建工作分解結構四、確認范圍五、控制范圍 前言 為了應對煙草零售客戶數量大幅度增長所帶來的問題&#xff0c;切實履行控煙履約的相關要求&#xff0c;同時也為了響應國務院“放管服”政策…