一、题目:
函数原型:
int majorityElement(int* nums, int numsSize)
参数解释:
int *nums是一个指针,用于接收数组名
int numsSize是数组的元素个数
二、思路:用同归于尽消杀法:
因为题目条件给出多数元素的个数大于总个数的50%,所以可以假设存在多个阵营,一个是多数元素的阵营,其他的则是非多数元素的阵营。
1.假设存在阵地,初始时无人占领,每次都会有一个阵营的士兵去争夺阵地
2.若阵地无人,则属于先到的士兵所属阵营;若阵营中有人,同阵营的则一起守阵地,守阵地人数增加,不同阵营的,则与其同归于尽,守阵地人数减少
3.由于多数元素的阵营的士兵大于其他阵营士兵的总和,因此所有士兵同归于尽后最后剩下的一定是多数元素阵营的士兵
三、代码:
cppint majorityElement(int* nums, int numsSize){ int result=0; int count=0; for(int i=0;i<numsSize;i++) { if(count==0)//判断阵地有无人 { result=nums[i]; count++; } else { if(nums[i]==result)//阵地有人,且是同阵营的 { count++;//守阵地人数增加1 } else//阵地有人,但是其他阵营的 { count--;//与其同归于尽,守阵地人数减少1 } } } return result;//最终剩下的一定是多数元素阵营的,即多数元素,返回多数元素 }
leetcode:169. 多数元素(同归于尽消杀法)
南林yan2023-10-12 23:47
相关推荐
王哈哈^_^5 分钟前
【完整源码+数据集】高空作业数据集,yolo高空作业检测数据集 2076 张,人员高空作业数据集,目标检测高空作业识别系统实战教程一条数据库12 分钟前
猫狗识别数据集:34,441张高质量标注图像,深度学习二分类任务训练数据集,计算机视觉算法研发,CNN模型训练,图像识别分类,机器学习实践项目完整数据资bloxd yzh22 分钟前
图论基础概念小白程序员成长日记26 分钟前
2025.11.09 力扣每日一题hansang_IR26 分钟前
【题解】洛谷 P1477 [NOI2008] 假面舞会 [思维 + 图论]天选之女wow30 分钟前
【代码随想录算法训练营——Day59】图论——47.参加科学大会、94.城市间货物运输ICoovallyAIHub38 分钟前
1.2MB超轻量模型实现草莓苗精准分级检测与定位,准确率超96%CoovallyAIHub1 小时前
终结AI偏见!Sony AI发布Nature论文与FHIBE数据集,重塑公平性评估基准7澄11 小时前
深入解析 LeetCode 1572:矩阵对角线元素的和 —— 从问题本质到高效实现ALex_zry1 小时前
c20 字符串处理优化可选方案