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

C++速通LeetCode简单第20题-多数元素

方法一:暴力解法,放multiset中排序,然后依次count统计,不满足条件的值erase清除。 

class Solution {
public:int majorityElement(vector<int>& nums) {int ans = 0;multiset<int> s;for(int i = 0;i < nums.size(); i++){s.insert(nums[i]);}for(multiset<int>::iterator it = s.begin();it != s.end();it++){if(s.count(*it) > nums.size() >> 1){ans = *it;break;}else s.erase(*it);//消除不是最多的重复元素,提高效率it = s.begin();//迭代器转到消除后的第一个元素}return ans;}
};

方法二:最优解法,摩尔投票法,转换为投票选举问题,最后票数多的为答案。

class Solution {
public:int majorityElement(vector<int>& nums) {int candidate = -1;int count = 0;for (int num : nums) {if (num == candidate)++count;else if (--count < 0) {candidate = num;count = 1;}}return candidate;}
};

纪念:这是100题的最后一道简单题啦,下面就要进军中等题咯,加油。

http://www.lryc.cn/news/440443.html

相关文章:

  • 回收站永久删除的文件还能恢复吗?教你恢复技巧
  • Python Web 微服务架构全面解析与实战指南
  • SEAFARING靶场漏洞攻略
  • ROS 编程入门的介绍
  • 第十一章 抽象类与接口
  • 请问企业的八大金刚系统是哪些?有什么共同点和区别?
  • 【入门】配置 Java 应用程序的完整指南
  • flutter widget 设置GestureDetector点击无效
  • 基于SpringBoot的在线教育平台的设计与实现
  • Django_Vue3_ElementUI_Release_004_使用nginx部署
  • Java抽象类的案例
  • 运维工程师面试整理-数据库
  • comfyui一键抠图工作流:让你告别PS!
  • 【Hot100】LeetCode—4. 寻找两个正序数组的中位数
  • 【LLM text2sql】浅看大模型用于text2sql的综述
  • Node js介绍
  • 企业编辑抖音百科词条有什么用?
  • 数据结构-链式二叉树-四种遍历
  • 【YashanDB知识库】数据库获取时间和服务器时间不一致
  • 十大排序之:冒泡排序
  • 【MPC】无人机模型预测控制复现Data-Driven MPC for Quadrotors项目(Part 1)
  • 微信小程序开发——比较两个数字大小
  • Java多线程3
  • node+Vue项目环境创建
  • 云智AI人工智能平台——与众不同之处
  • 国庆节有什么好物值得入手?精选国庆节必选好物合集
  • 并发安全与锁
  • 细胞分裂检测系统源码分享
  • openssl 生成多域名 多IP 的数字证书
  • 电影评论|基于springBoot的电影评论网站设计与实现(附项目源码+论文+数据库)