LeetCode 169. 求众数(摩尔投票)

文章目录

    • 1. 题目信息
    • 2. 解题思路
    • 3. 代码
      • 3.1 排序
      • 3.2 map计数
      • 3.3 摩尔投票

1. 题目信息

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在众数。

示例 1:输入: [3,2,3]
输出: 3
示例 2:输入: [2,2,1,1,1,2,2]
输出: 2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/majority-element
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题思路

  • 根据题意肯定存在,先排序,然后返回n/2下标处的值,时间复杂度O(n2)
  • 哈希map,查找key,value计数,时间复杂度O(n)
  • 摩尔投票法,时间复杂度O(n)

相关题目:LeetCode 229. 求众数 II(摩尔投票)

3. 代码

在这里插入图片描述

3.1 排序

class Solution
{
public:int majorityElement(vector<int>& nums){sort(nums.begin(),nums.end());return nums[nums.size()/2];}
};

3.2 map计数

class Solution
{
public:int majorityElement(vector<int>& nums){unordered_map<int, int> m;for(int i = 0; i < nums.size(); ++i){m[nums[i]]++;if(m[nums[i]] > nums.size()/2)return nums[i];}return 0;}
};

3.3 摩尔投票

class Solution {//摩尔投票
public:int majorityElement(vector<int>& nums) {int i, maj, count = 0, n = 0;for(i = 0; i < nums.size(); ++i){if(count == 0){maj = nums[i];count++;}else{if(maj == nums[i])count++;elsecount--;}}for(i = 0; i < nums.size(); ++i){if(maj == nums[i])n++;}if(n > nums.size()/2)return maj;return -1;}
};

《剑指Offer》同题:面试题39. 数组中出现次数超过一半的数字
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制

不管是BAT面试&#xff0c;还是工作实践中的JVM调优以及参数设置&#xff0c;或者内存溢出检测等&#xff0c;都需要涉及到Java虚拟机的内存模型、内存分配&#xff0c;以及回收算法机制等&#xff0c;这些都是必考、必会技能。 JVM内存模型 JVM内存模型可以分为两个部分&…

Keras共享某个层

对一个层的多次调用&#xff0c;就是在共享这个层。 input1 Input(shape[28,28]) input2 Input(shape[28,28]) x1 Flatten()(input1) x1 Dense(60,activation"relu")(x1) x2 Flatten()(input2) x2 Dense(60,activation"relu")(x2)d Dense(10, acti…

我的BERT!改改字典,让BERT安全提速不掉分(已开源)

文 | 苏剑林编 | 小轶背景当前&#xff0c;大部分中文预训练模型都是以字为基本单位的&#xff0c;也就是说中文语句会被拆分为一个个字。中文也有一些多粒度的语言模型&#xff0c;比如创新工场的ZEN和字节跳动的AMBERT&#xff0c;但这类模型的基本单位还是字&#xff0c;只不…

2020年考证时间表汇总!这些证书值得拥有!

原文地址&#xff1a; https://zhuanlan.zhihu.com/p/100824416 2020年考证时间表汇总&#xff01;这些证书值得拥有&#xff01;已认证的官方帐号154 人赞同了该文章昨日之日不可留&#xff0c;2019年已然过去&#xff0c;2020年的我们不能再一成不变&#xff01;快根据自身情…

征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事

2019年全国知识图谱与语义计算大会China Conference on Knowledge Graph and Semantic Computing (CCKS 2019)2019年8月24日-27日&#xff0c;杭州征稿截止: 2019年5月18日全国知识图谱与语义计算大会&#xff08;CCKS: China Conference on Knowledge Graph and Semantic Comp…

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

BAT必考JVM系列专题 直通BAT必考题系列&#xff1a;深入详解JVM内存模型与JVM参数详细配置 垃圾回收算法 1.标记清除 标记-清除算法将垃圾回收分为两个阶段&#xff1a;标记阶段和清除阶段。 在标记阶段首先通过根节点&#xff08;GC Roots&#xff09;&#xff0c;标记所…

遗传算法及其应用实现

使用遗传算法求解函数具有最大值的点X """ Visualize Genetic Algorithm to find a maximum point in a function. """ import numpy as np import matplotlib.pyplot as pltDNA_SIZE 10 # DNA length POP_SIZE 100 # population size CROSS…

python 判断一个点(坐标)是否在一个多边形内利用射线法

看了一篇博客写的用射线法判断一个经纬度点是否在一个多边形的内部的方法 经验证可行所以拿来用作备份: class Point:lng lat def __init__(self, lng, lat):self.lng lngself.lat lat求外包矩形 def get_polygon_bounds(points):length len(points)top down left ri…

论文浅尝 | 一种嵌入效率极高的 node embedding 方式

论文笔记整理&#xff1a;叶群&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。会议&#xff1a;WSDM 2019链接&#xff1a;https://dl.acm.org/citation.cfm?id3290961Motivation基于spring-electrical的模型在网络可视化中取得了非常成功的应用&#xff0c;一…

重要的,是那些训练中被多次遗忘的样本

文 | kid丶源 | 知乎编 | 兔子酱今天跟大家分享一篇很有意思的文章&#xff0c;是一篇探讨深度学习模型记忆&遗忘机制的文章&#xff0c;是一篇角度很新颖的题材&#xff0c;同时又有一定启发作用。这篇文章发表在深度学习顶会ICLR19&#xff0c;标题是《An empirical stud…

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT之JVM系列 直通BAT必考题系列&#xff1a;JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列&#xff1a;深入详解JVM内存模型与JVM参数详细配置 今天继续JVM的垃圾回收器详解&#xff0c;如果说垃圾收集算法是JVM内存回收的方法论&#xff0c;那么垃圾收集…

模拟嫁接技术

模拟嫁接技术&#xff1a;定义嫁接算子及策略剪接算子及策略GPOGA算法总结定义 收益和代价 对一棵生成树 T1&#xff0c;若将某结点的一条分枝移至另一结点作为其一条分枝后产生的生成树为 T2&#xff0c;考察分枝移动前后生成树的边长和的变化&#xff0c;则定义收益(gain)和…

python 之pyecharts画图:最全地图,词云图,世界地图,省份图,区县图

python最全画地图&#xff0c;可视化数据&#xff0c;pyecharts画图: https://www.jianshu.com/p/e0b2851672cd Python强大的pyecharts绘画优美图形<二>:https://www.jianshu.com/p/96fe420ddd76 pyecharts绘画优美图形<三>&#xff1a;仪表盘 - 漏斗图 - 关系图 …

HuggingFace又出炼丹神器!稀疏矩阵运算进入平民化时代!

文 | rumor酱编 | YY一提到模型加速&#xff0c;大家首先想到的就是蒸馏、&#xff08;结构性&#xff09;剪枝、量化&#xff08;FP16&#xff09;&#xff0c;然而稀疏矩阵&#xff08;sparse matrix&#xff09;运算一直不被大家青睐。原因也很简单&#xff0c;一是手边没有…

章乐焱 | 用“科技”监管“科技”,知识图谱能做什么?

本文转载自公众号&#xff1a;恒生技术之眼。人工智能、大数据等前沿科技的爆发&#xff0c;推动金融科技进入了一个崭新的时代&#xff0c;也成为监管科技发展的重要推动力。在这个Fintech的黄金时代&#xff0c;前沿科技正在如何赋能监管&#xff1f;这方面&#xff0c;恒生公…

LeetCode 23. 合并K个排序链表(优先队列)

文章目录1. 题目信息2. 思路3. 代码1. 题目信息 合并 k 个排序链表&#xff0c;返回合并后的排序链表。请分析和描述算法的复杂度。 示例:输入: [1->4->5,1->3->4,2->6 ] 输出: 1->1->2->3->4->4->5->6来源&#xff1a;力扣&#xff08;…

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

JVM系列 直通BAT必考题系列&#xff1a;7种JVM垃圾收集器特点&#xff0c;优劣势、及使用场景 直通BAT必考题系列&#xff1a;JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列&#xff1a;深入详解JVM内存模型与JVM参数详细配置 JVM内存调优 对JVM内存的系统级…

mysql匹配字符

1.正确的方式&#xff1a; 判断字段field_A中是否包含23: select * from table_test where FIND_IN_SET("23", field_A) ;2.错误的方式&#xff1a; select * form table_test where field_A like "%23%"*****3.案例分析&#xff1a; field_A字段&#…

论文浅尝 | 知识图谱三元组置信度的度量

论文笔记整理&#xff1a;叶橄强&#xff0c;浙江大学计算机学院&#xff0c;知识图谱和知识推理方向。https://arxiv.org/pdf/1809.09414.pdf动机在构建知识图谱的过程中&#xff0c;不可避免地会产生噪声和冲突。基于知识图谱的任务或应用一般默认假定知识图谱中的知识是完全…

跟小伙伴们做了个高效刷论文的小站

好久木有在知乎冒泡了&#xff0c;不知道还能不能出现在大家的timeline上哇QAQ正文开始之前还是先习惯性的碎碎念一下。前段时间换了研究方向&#xff0c;重新pick了问答和检索&#xff0c;为了追上相关问题的最新进展&#xff0c;就顾不上写文的刷了一堆paper&#xff0c;加上…