leetcode169.多数元素

devtools/2025/1/24 3:17:36/

给定一个大小为 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

进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。

思路:这里直接上进阶算法思路。假设candidate为主要势力(存储多数元素),count 为candidate战斗力(多数元素和其他元素对抗后剩余个数);战斗力为0时,主要势力变更;如果遇到和candidate是一伙的则战斗力count++;如果和candidate不是一伙的,则战斗力count--。由于非maj的人数比maj的人数少并且还会自相残杀,非maj们无法吧maj们全拉下来。因此最后的candidate就是多数元素。注意:不能采用计数排序思想,内存会超出限制

public int majorityElement(int[] nums) {int count = 0;int candidate = nums[0];for (int num : nums) {if (count == 0)candidate = num;count += (num == candidate) ? 1 : -1;}return candidate;}

碎碎念:这竟然是简单题????尽力了,上面的思路描述真的尽可能不那么抽象化了


http://www.ppmy.cn/devtools/153027.html

相关文章

Excel常用功能总结

Excel 是微软办公软件套装中的一个重要组件&#xff0c;用于数据处理和分析。以下是一些 Excel 的常用功能总结&#xff1a; 基本操作 1.单元格操作&#xff1a;选择、插入、删除单元格、行或列。 2.数据输入&#xff1a;输入文本、数字、日期和时间。 3.格式设置&#xff1a;设…

从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)

从零到上线&#xff1a;Node.js 项目的完整部署流程&#xff08;包含 Docker 和 CI/CD&#xff09; 目录 项目初始化&#xff1a;构建一个简单的 Node.js 应用设置 Docker 环境&#xff1a;容器化你的应用配置 CI/CD&#xff1a;自动化构建与部署上线前的最后检查&#xff1a;…

Golang初识

Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个大牛于2007年开始设计发明&#xff0c;他们最终的目标是设计一种适应网络和多核时代的C语言。所以Go语言很多时候被描述为“类C语言”&#xff0c;或者是“21世纪的C语言”&#xff0c;当然从各种角度看&…

详解Redis的List类型及相关命令

目录 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LLEN 阻塞版本命令 BLPOP BRPOP 内部编码 应用场景 Redis中的List类型&#xff0c;是保证元素有序的&#xff0c;支持队列从两端进行插入删除和获取&#xff0c;并且元素时刻重复的。 LPUSH 将…

【2025小年源码免费送】

&#x1f496;学习知识需费心&#xff0c; &#x1f4d5;整理归纳更费神。 &#x1f389;源码免费人人喜&#xff0c; &#x1f525;码农福利等你领&#xff01; &#x1f496;山高路远坑又深&#xff0c; &#x1f4d5;大军纵横任驰奔&#xff0c; &#x1f389;谁敢横刀立马行…

头歌实训作业 算法设计与分析-贪心算法(第2关:最优装载问题)

任务描述 有一批集装箱要装上一艘载重量为C的轮船&#xff0c;共有n个集装箱&#xff0c;其中集装箱i的重量为Wi。 最优装载问题要求确定在装载体积不受限制的情况下&#xff0c;将尽可能多的集装箱装上轮船。 测试说明 输入和输出说明&#xff1a; 第1行为集装箱数目n和载重限…

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 Lin…

3.2 OpenAI 语言模型总览:GPT 系列的演进与应用解析

OpenAI 语言模型总览:GPT 系列的演进与应用解析 OpenAI 的语言模型,特别是 GPT(Generative Pre-trained Transformer)系列,代表了当前自然语言处理(NLP)技术的前沿。自从推出以来,这些模型不断推进了文本生成、理解和交互的能力,成为了多个应用场景中的核心技术。本文…