问题描述:

数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。

示例 1:

输入:[1,2,5,9,5,9,5,5,5]
输出:5

示例 2:

输入:[3,2]
输出:-1

示例 3:

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

说明:
你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗?

方法一:
先对着数组进行排序(因为排好序后,数组中间的那个数即为主要元素)
在判断排好序的数组中间数是否是主要元素

class Solution {public:int majorityElement(vector<int>& nums) {sort(nums.begin(), nums.end());int x = nums[nums.size() / 2];int count = 0;for(auto a:nums){if(a==x)count++;}if(count>nums.size()/2)//注意这里不是大于等于return x;elsereturn -1;}
};

leetcode——面试题 17.10. 主要元素相关推荐

  1. 面试题 17.10. 主要元素

    题目 数组中占比超过一半的元素称之为主要元素.给你一个 整数 数组,找出其中的主要元素.若没有,返回 -1 .请设计时间复杂度为 O(N) .空间复杂度为 O(1) 的解决方案. 示例 1: 输入:[ ...

  2. 文巾解题 面试题 17.10. 主要元素

    1 题目描述 2 解题思路 因为是O(N)的时间复杂度和O(1)的空间复杂度,所以想到的是Boyer-Moore 投票算法.这个算法的原理可见:算法整理:Boyer-Moore 投票算法_刘文巾的博客 ...

  3. leetcode 面试题 17.14. 最小K个数 大顶堆 小顶堆 快排

    leetcode 面试题 17.14. 最小K个数 [难度:中等] 设计一个算法,找出数组中最小的k个数.以任意顺序返回这k个数均可. 示例: 输入: arr = [1,3,5,7,2,4,6,8], ...

  4. [leetcode 面试题 17.17] -- 多次搜索,KMP与字典树

    [leetcode 面试题 17.17] -- 多次搜索 题目来源 分析 KMP思路 完整代码 字典树 完整代码 题目来源 https://leetcode-cn.com/problems/multi ...

  5. ⭐算法入门⭐《堆》中等01 —— LeetCode 面试题 17.09. 第 k 个数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   有些数的素因子只有 3 ...

  6. LeetCode 面试题 17.16. 按摩师

    面试题 17.16. 按摩师 题目:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接.在每次预约服务之间要有休息时间,因此她不能接受相邻的预约.给定一个预约请求序列,替按摩师找到最 ...

  7. Leetcode每日一题:面试题17.10.find-majority-element-lcci(主要元素)

    思路:这道题不是单纯的摩尔投票法,因为它有可能不存在主要元素,而摩尔投票要求必须存在主要元素: 这里通过摩尔投票法得到的可能是那个渔翁得利的元素,比如2 2 3 3 1,那么最后res=1,但实际上这 ...

  8. leetcode —— 面试题17. 打印从1到最大的n位数

    输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数 999. -------------- 解题思路:使用深度优先遍历,从第一位开始 ...

  9. leetcode —— 面试题 17.12. BiNode

    二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点).实现一个方法,把二叉搜索树转换为单向链表,要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉 ...

最新文章

  1. SAP PP 中关于计划订单和生产订单的日期计算
  2. 二十万字C/C++、嵌入式软开面试题全集宝典六
  3. Delphi写的等待进程运行结束函数
  4. 逻辑综合——概述与基本概念
  5. tomcat不能多次startup.sh,异常时直接,分析logs目录下的日志。
  6. linux暂停和恢复进程
  7. 软件项目详细设计方案怎么写?
  8. [c#]删除PDF权限密码
  9. java色号_RGB颜色与16进制颜色的换算方法
  10. Format函数详解
  11. 求椭圆的切线方程------很有对称美
  12. 边境的悍匪—机器学习实战:第十八章 强化学习
  13. 当远程工作成为未来的工作方式......
  14. 【紫书】第一章实验+问题
  15. WebSocket与消息推送
  16. 机器学习入门(吴恩达)——单变量线性回归
  17. 前后台数据加密(java版)
  18. 大数据分析AI和机器学习在医疗行业的应用
  19. GPU版本安装Pytorch教程最新方法
  20. 解决:AttributeError: can't set attribute

热门文章

  1. SQL Server 急救包(First Responder Kit)入门教程
  2. oracle listagg方法,Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg...
  3. linux java性能监控工具_Linux实时监控工具Nmon使用
  4. 封装一个Array 数据 绑定 html select 方法
  5. TCP协议之如何保证传输的可靠性
  6. C和指针之联合体大小
  7. linux之修改dns以及用netmask修改ip和网关
  8. python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息
  9. sql CHECK ,UNIQUE 约束(mysql)
  10. android开发板出错,为开发板编译时出错是什么原因