求出现次数大于数组长度一半的那个数
2016-02-24 21:33
267 查看
方法一:排序,找出最中间的那个数,就是,算法时间复杂度,o(nlogn)
方法二:用临时变量,一个存放当前的数,一个用来计数
方法二:用临时变量,一个存放当前的数,一个用来计数
// 求一串数中最多的数.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> #include <vector> using namespace std; int findOverhalf(vector<int>& vec){ int i = 0,a=vec[0],b=0; for (i = 1; i < vec.size(); i++){ if (b == 0){ a = vec[i]; } if (vec[i] == a){ b++; a = vec[i]; } else if(vec[i]!=a&&b>0){ b--; } } return a; } int _tmain(int argc, _TCHAR* argv[]) { vector<int> ve = {1,1,1,1,3,2,2,2,2,2,2}; int b = findOverhalf(ve); cout << b << endl; return 0; }
相关文章推荐
- 解决PHP访问MYSQL显示都是?的问题
- poj2773 容斥原理
- Windows7+VS2010环境下配置OSG
- Windows7+VS2010环境下配置OSG
- 统计一周内创建的用户或邮箱
- POJ 3984 静态数组队列学习应用
- ngrok
- Golang(Go语言)代码技巧之字符串(string)
- Golang(Go语言)内置函数之copy用法
- 容器的随机数生成器(模板)
- [Lintcode]Recover Rotated Sorted Array Show result
- J2EE中常见易混淆概念
- thinkphp_3.1.2模板
- [maya学习笔记(11)] 结合分离提取 布尔运算
- hdu 2955 Robberies
- 高僧斗法--Staircase Nim
- Apache ab - apr_socket_recv: Connection reset by peer (104)
- UI美化概述
- 每日一练——2016.2.24
- suid seuid 当前用户ID 有效用户ID