美文网首页数据结构和算法分析程序员
lintcode 主元素(|、||、|||)

lintcode 主元素(|、||、|||)

作者: yzawyx0220 | 来源:发表于2016-12-29 10:49 被阅读36次

    三道题感觉是一个题
    给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。
    样例
    给出数组 [3,1,2,3,2,3,3,4,4,4] ,和 k = 3,返回 3
    方法比较简单,首先将数组排序,然后挨个进行遍历,如果重复那么count计数加1,如果count大于数组长度的1/k返回:

    class Solution {
    public:
        /**
         * @param nums: A list of integers
         * @param k: As described
         * @return: The majority number
         */
        int majorityNumber(vector<int> nums, int k) {
            // write your code here
            sort(nums.begin(),nums.end());
            if (nums.size() == 1) return nums[0];
            int i = 1,count = 1;
            while (i < nums.size()) {
                if (nums[i] == nums[i-1]) {
                    count++;
                    if (count > nums.size()/k) return nums[i];
                }
                else count = 1;
                i++;
            }
        }
    };
    

    相关文章

      网友评论

        本文标题:lintcode 主元素(|、||、|||)

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