算法随笔_65: 多数元素_方法1

embedded/2025/3/6 18:01:38/

上一篇:算法随笔_64: 含特定字母的最小子序列-CSDN博客

=====

题目描述如下:

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入:nums = [3,2,3]
输出:3

示例 2:

输入:nums = [2,2,1,1,1,2,2]
输出:2

=====

算法思路:

我们可以利用字典来统计每种元素出现的次数。最后再遍历一遍字典,即可找出大于n/2的元素。

时间复杂度O(n)。下面是Python代码实现:

class Solution(object):def majorityElement(self, nums):""":type nums: List[int]:rtype: int"""num2cnt={}for num in nums:if num not in num2cnt:num2cnt[num]=0num2cnt[num]+=1res=0n_2=len(nums)/2for num in num2cnt:if num2cnt[num]>n_2:res=numbreakreturn res


http://www.ppmy.cn/embedded/170535.html

相关文章

D033 neo4j知识图谱在线学习系统vue+django+neo4j【单课程】

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 🤍编号:D033 🤍智能问答(检索式):知识点所包含知识点、学习路线、预习知识、知识点概念 …

TCP、UDP、WebSocket 和 HTTP 教程

一、TCP(传输控制协议) 1. 原理 TCP 处于传输层,负责为应用层提供可靠的、面向连接的字节流服务。在数据传输前,它会通过"三次握手"建立连接,确保通信双方都具备收发数据的能力;传输过程中&…

【大模型安全】模型对抗攻击手段

【大模型安全】模型对抗攻击手段 1.基于梯度的攻击方法(白盒)FGSM 攻击PGD 攻击 2.基于优化的攻击方法(白盒)3.基于迁移的攻击方法(黑盒)4.基于GAN的攻击方法(灰盒)5.基于决策边界的…

版本控制器Git和gdb

一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存,保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端,也是一个服务器,是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…

Centos 7.9内核升级

手动内核从3.10升级到5.15 从https://dl.lamp.sh/kernel/el7/下载两个包 安装主内核包 sudo rpm -ivh kernel-ml-5.15.148-1.el7.elrepo.x86_64.rpm 安装开发包(编译 eBPF 必需) sudo rpm -ivh kernel-ml-devel-5.15.148-1.el7.elrepo.x86_64.rpm …

23种设计模式之《模板方法模式(Template Method)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式&#xff0…

【漫话机器学习系列】119.小批量随机梯度方法

1. 引言 在机器学习和深度学习中,梯度下降(Gradient Descent)是一种常见的优化算法,用于调整模型参数以最小化损失函数。然而,在处理大规模数据集时,使用传统的梯度下降(GD)可能会面…

LangChain-08 Query SQL DB 通过GPT自动查询SQL

我们需要下载一个 LangChain 官方提供的本地小数据库。 安装依赖 SQL: https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql Shell: pip install --upgrade --quiet langchain-core langchain-community la…