LintCode 46.主元素

来源:互联网 发布:剑三正太脸型数据网盘 编辑:程序博客网 时间:2024/05/21 16:58

给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。


 注意事项

You may assume that the array is non-empty and the majority number always exist in the array.

给出数组[1,1,1,1,2,2,2],返回 1

思路:要求主元素的个数要大于总数的一半,那么我就把这些数从小到大排一遍,由主元素的定义,所给的数必定是单数,所以,我取数的一半是个小数,取其整形,必定在中位数的左边.................好像解释不了了,水过的吧........

再等一下,我又想起来了,因为主元素的个数必须多于一半,所以只要有主元素无论大小,排在前还是排在后,只要在中间有这个数,那么他就是主元素........终于绕过来了,哈哈哈

class Solution {public:    /*     * @param nums: a list of integers     * @return: find a  majority number     */    int majorityNumber(vector<int> &nums) {        // write your code here        int ans=0;        int n=nums.size();                        sort(nums.begin(),nums.end());              int w=nums[n/2];        return w;                                        }};                

笑死我了,我又看一遍,怎么想都过不了的才对,竟然给我过了,哈哈哈哈哈,等会再写一个更好的吧....
我又回来了。。。不知道对不对反正又过了...............................
class Solution {public:    /*     * @param nums: a list of integers     * @return: find a  majority number     */    int majorityNumber(vector<int> &nums) {        // write your code here        int ans=0;        int n=nums.size();                int w=nums[0];        sort(nums.begin(),nums.end());                 for(int i=0;i<n;i++)          {  if(w==nums[i])          {ans++;}          if(w!=nums[i])          { w=nums[i];            ans=1;}                    if(ans>n/2)          return w;          }                }};        

等等,还有一个

class Solution {public:    /*     * @param nums: a list of integers     * @return: find a  majority number     */    int majorityNumber(vector<int> &nums) {        // write your code here        int ans= 0;                int w = 0;        for (int i = 0; i < nums.size(); i++)        {            if (ans == 0)            {                result = nums[i];            ans++;                            }             else            {                if (result != nums[i])                {                    ans--;                    }                    else                    {                        ans++;                        }                        }                        }return w;                        }            }; 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2岁儿童头发稀少怎么办 1岁宝宝头发稀少怎么办 头发又细又油怎么办 斑秃长了又掉怎么办 2岁宝贝头发稀少怎么办 25岁小伙掉头发怎么办 头发又细又软怎么办 甲减引起掉头发怎么办 掉头发严重怎么办40岁 4岁宝宝头发稀少怎么办 25岁头发顶脱发怎么办 头发细又少和软怎么办 头顶上头发少怎么办呢 3岁宝贝头发稀少怎么办 2岁幼儿头发稀少怎么办 小孩头发太少了怎么办 头发少盘丸子头怎么办 油头发掉的厉害怎么办 头顶头发长得慢怎么办 每次洗头发都掉很多头发怎么办 拔了头发不长怎么办 6岁儿童头发稀少怎么办 2岁宝宝胆子小怎么办 坐到小孩的头怎么办 托班幼儿不刷牙怎么办 两岁的宝宝蛀牙怎么办 小孩在学校被打怎么办 油画棒画在墙上怎么办 宝宝把蜡笔吃了怎么办 吃鸡更新了怎么办开始 数字画涂料干了怎么办 广告画颜料干了怎么办 宝宝断奶后瘦了怎么办 腿一个粗一个细怎么办 两条小腿不一样粗怎么办 两岁宝宝坐不了怎么办 q糖孩子吃多了怎么办 q糖孩子吃的太多怎么办 ps图层不能覆盖怎么办 孩子的字写的不好怎么办 孩子爱打人怎么办 6招