美文网首页
主元素算法

主元素算法

作者: 走出幻觉走向成熟 | 来源:发表于2016-06-10 01:29 被阅读43次

counting 大于 n/2, n/3都可以用投票法来做

int count = 1 ;
        int major = nums[0];
        for(int i = 1, size = nums.size(); i < size; i++) {
            if (count == 0) {
                major = nums[i];
                count = 1;
            }
            else {
                if (nums[i] == major)
                    count++;
                else {
                    count--;
                }
            }
        }
        return major;
 int cnt1 = 0;
        int cnt2 = 0;
        int a = 0;
        int b = 1;
        for (auto val : nums) {
            if (val == a) {
                cnt1++;
            }
            else if (val == b) {
                cnt2++;
            }
            else if (cnt1 == 0) {
                a = val;
                cnt1 = 1;
            }
            else if (cnt2 == 0) {
                b = val;
                cnt2 = 1;
            }
            else {
                cnt1--;
                cnt2--;
            }
        }

相关文章

  • 主元素算法

    counting 大于 n/2, n/3都可以用投票法来做

  • 【算法题】6.求主元素

    题目 已知⼀个整数序列A = (a0,a1,a2,...an-1),其中(0<= ai <=n),(0<= i<=...

  • 快速排序

    思想 确定主元素,利用主元素进行数组划分,小于主元素的元素在主元素左边,大于主元素的在右边,利用递归排序。这里用到...

  • 主元素

    碎花成群绮丽如诗旖旎从风 源自于琐碎用不逊色求证碎花裙拼凑了人间色彩谁的谁一阵风,一场梦

  • 第10章:泛型算法

    #1.概述 #2.初始泛型算法只读算法写容器元素的算法重排容器元素的算法 #3.定制操作向算法传递函数lambda...

  • 算法 - 数组主元素(出现次数超过一半的元素)

    题目: 整数数组,包含n个元素 主元素 - 某个元素出现次数 > n/2 是否存在主元素 找出主元素 举个例子 数...

  • (三)排序

    1 初级排序算法 排序算法关注的主要是重新排列数组元素,其中每个元素都有一个主键。排序算法是将所有元素主键按某种方...

  • Objective-C实现冒泡算法

    一,冒泡算法简介 冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素。如果一个元素比另一个元素...

  • golang实现快速排序

    快速排序算法的算法逻辑如下: 选取数组中的一个元素,将所有的比该元素小的元素放到该元素的左侧,比它大元素放到它的右...

  • [LintCode]主元素

    原文发表在我的博客:主元素求关注、求交流、求意见、求建议。 问题 LintCode:主元素 描述 给定一个整型数组...

网友评论

      本文标题:主元素算法

      本文链接:https://www.haomeiwen.com/subject/gylsdttx.html