博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 169 Majority Element(主要元素)(vector、map)
阅读量:7058 次
发布时间:2019-06-28

本文共 1786 字,大约阅读时间需要 5 分钟。

版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50504698

翻译

给定一个长度为n的数组,找出主要的元素。所谓主要的元素是指的出现次数超过⌊ n/2 ⌋次的元素。你可以假定这个数组是非空的,并且“主要元素”一定是存在的。

原文

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always exist in the array.

分析

既然题意说了这个主要元素是一定存在的,我就钻了空子,没打算去求什么n/2这东西,直接是所有序列中最长的。

1,2,2,3,3,3,3,3,4,4-->1-12-23-54-2

看到了键值对,想到了基本的map,还有些复杂的容器我就用的不太熟悉了……

在下面的代码这两个,我首先定义了element元素,然后用range-for从nums中便利所有的元素:

1)如果在map中找不到这个元素,就添加进去;2)如果找到了,将其出现的个数加上1。如果当前的长度大于最大的长度,则进行一些列操作,并将max设置为当前的n,以便于后面的返回。

调试之后发现还有nums长度为1的情况,于是在开头加上一个判断。

int majorityElement(vector
& nums) { if (nums.size() == 1) return nums[0]; map
element; int max = 0, maxLen = 0; for (auto n : nums) { if (element.find(n) == element.end()) { element.insert(map
::value_type(n, 1)); } else { element[n] += 1; if (element[n] >= maxLen) { maxLen = element[n]; max = n; } } } return max;}

代码

class Solution {public:    int majorityElement(vector
& nums) { if (nums.size() == 1) return nums[0]; map
element; int max = 0, maxLen = 0; for (auto n : nums) { if (element.find(n) == element.end()) { element.insert(map
::value_type(n, 1)); } else { element[n] += 1; if (element[n] >= maxLen) { maxLen = element[n]; max = n; } } } return max; }};
你可能感兴趣的文章
微软在C# 8中引入预览版可空引用类型
查看>>
深究JavaScript——函数调用与this详解
查看>>
书评与访谈:Software Development Metrics
查看>>
re:Invent第二天:互联网客户在右传统客户在左,AWS向哪儿?
查看>>
云端能力知几许?12人众测华为云企业级Kubernetes集群实力
查看>>
《Elixir in Action》书评及作者问答录
查看>>
Apache HBase的现状和发展
查看>>
AlphaZero进化论:从零开始,制霸所有棋类游戏
查看>>
IBM中国开发中心吉燕勇: 通过Cloud Data Services打造新型认知计算数据分析云平台...
查看>>
作者问答:解密硅谷
查看>>
linux系统高并发socket最大连接数优化
查看>>
Netflix发布Polly.JS,一个用于HTTP交互的开源库
查看>>
敏捷团队中测试人员的角色
查看>>
GitHub推出Scientist,帮助开发者重构关键路径代码
查看>>
40%创业公司用伪AI忽悠钱,欧洲被AI时代抛弃了吗?
查看>>
AT&T签署8位数合同,设备商恐无法从5G获利
查看>>
Netflix Play API:我们为什么构建了一个演进式架构?
查看>>
我不是仆人,是主人!敏捷中领导力的新比喻?
查看>>
Next.js 7.0正式发布:重新编译速度提高42%,支持WebAssembly
查看>>
Java API for RESTful Web Services 2.1发布
查看>>