LeetCode---Majority Element II
2015-11-09 20:35
204 查看
题目大意:给出一个数组,找出数组中元素出现次数大于数组1/3规模的元素,要求算法运行时间在线性时间内,空间复杂度为O(1);
算法思想:
1.首先对数组排序。
2.利用upper_bound()算法找出出现次数大于数组规模1/3的元素。
代码如下:
算法思想:
1.首先对数组排序。
2.利用upper_bound()算法找出出现次数大于数组规模1/3的元素。
代码如下:
class Solution { public: vector<int> majorityElement(vector<int>& nums) { vector<int> res; int nums_size=0; if(nums.size()==0) return res; int times=nums.size()/3; sort(nums.begin(),nums.end()); vector<int>::iterator pos=nums.begin(),prepos=nums.begin(); int value=*pos; while(pos!=nums.end()){ pos=upper_bound(nums.begin(),nums.end(),value); if(pos-prepos>times) res.push_back(value); value=*pos; prepos=pos; } return res; } };
相关文章推荐
- Java读取xml文件的四种方法
- JAVA课后作业
- JS 使用 window对象的print方法实现分页打印
- hdu 4689 Derangement(dp)
- oracle参数open_cursors和session_cached_cursor详解!
- Java基础学习24 (interface一)
- 最新 Hadoop 视频分享
- OpenGL_Qt学习笔记之_04(3D图形的绘制和旋转)
- hihocoder #1099 枚举
- 最新 Hadoop 视频分享
- audio和EMBED配合同时兼容IE8和safiri
- OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)
- ASP.NET多文件上传实例
- Context是什么?
- javascript:with的用法以及延长作用域链
- mvc项目问题清单以及解决方法
- NFA-DFA(c++实现代码c#实现画图)
- Java生成MD5字符串
- Leetcode149: Surrounded Regions
- 亚马逊API的使用