当前位置: 首页 > news >正文

算法练习——169.多数元素

1.题目描述

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

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

示例 1:

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

示例 2:

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

提示:
  • n == nums.length
  • 1 <= n <= 5 * 104
  • -109 <= nums[i] <= 109

2.解题思路

        本题使用摩尔投票方法解决。设置候选人 val 和票数 count ,初始值都是0,遍历数组,判断当前票数count是否为0,若是为0就设置当前数组元素为候选人,判断当前数组元素数值与候选人数值是否相等,相等count加一,不相等就减一。因为多数的值一定占数组中元素数目的一半以上,所以遍历完之后的票数count一定大于一,此时的候选人 val 的数值也一定就是中数。

3.代码展示

func majorityElement(nums []int) int {count := 0val := 0for i := 0; i < len(nums); i++{if count == 0{val = nums[i]}if nums[i] == val  {count ++} else {count--}}return val
}

http://www.xdnf.cn/news/1423549.html

相关文章:

  • 教育项目管理工具新趋势:可视化与自动化如何提升效率?
  • XGBoost学习笔记
  • 故障排查指南:理解与解决 “No route to host“ 错误
  • 【科普向-第七篇】Git全家桶介绍:Git/Gitlab/GitHub/TortoiseGit/Sourcetree
  • std::map::try_emplace完全详解
  • 从 Oracle 到 TiDB,通过ETL工具,高效实现数据拉通
  • 并发 -- JUC(java.util.concurrent) 包的简单介绍
  • NebulaAI V2.7.0发布:MCP广场正式上线!
  • FFMPEG 10BIT下 Intel b570 qsv 硬解AV1,H265视频编码测试
  • 【项目思维】贪吃蛇(嵌入式进阶方向)
  • 光学神经网络与人工智能应用
  • 【XR技术概念科普】详解6DoF:为什么它是沉浸感的关键?
  • 贝叶斯向量自回归模型 (BVAR)
  • 【Java】Redis(中间件)
  • 从API调用到效果呈现:面具特效功能在直播美颜SDK中的应用实践
  • Redis 八股
  • 中国家具百强「库斯家居」携手 企企通:启动 SRM 项目,构筑采购数字化新生态
  • Android/Java 中创建类实例的各种模式
  • nestjs 发起请求 axios
  • 3-6〔OSCP ◈ 研记〕❘ WEB应用攻击▸WEB应用枚举B
  • 【STM32】状态机(State Machine)
  • 证明与激励:Walrus 可编程数据如何通过激励可用性证明获得安全性
  • SpringBoot学习日记 Day9:响应式编程新世界探索
  • 【跨境知识】密文面单
  • Linux常用命令行大全:14个核心指令详解+实战案例
  • 多线程——线程的休眠、中断和等待
  • Markdown 语法全面指南
  • Win10系统获取网络上行流量的三种方法
  • 五、导入现有模型
  • 01 2025最新VMware虚拟机下载教程