![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
摩尔投票法
文章平均质量分 60
摩尔投票法
向光.
路过人间,绝非一瞬间.
展开
-
leetcode.面试题 17.10. 主要元素---摩尔投票法
面试题 17.10. 主要元素数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(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题解:由于题目限制了时间和空间的复杂度,因此我们这里只能使用摩尔投票法进行解决,具体摩尔投票法思路可见开学回归力扣:第十一题—原创 2021-07-12 22:06:13 · 133 阅读 · 2 评论 -
开学回归力扣:第十二题—— 229. 求众数 II(摩尔投票法)
229. 求众数 II给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。示例 1:输入:[3,2,3]输出:[3]示例 2:输入:nums = [1]输出:[1]示例 3:输入:[1,1,1,3,3,2,2,2]输出:[1,2] 提示:1 <= nums.length <= 5 * 104-109 <= nums[i] <= 109题原创 2021-03-15 17:16:05 · 176 阅读 · 0 评论 -
开学回归力扣:第十一题——169. 多数元素(摩尔投票法)
169. 多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2 进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。题解:首先最直白的方法就是两层for循环,即每一个元素我们都当成多数去计算,最后返回成功的那一个元素即可。但会超时。第原创 2021-03-14 15:57:31 · 111 阅读 · 2 评论