leetcode 169

169. Majority Element

  • 水平不够,有hash思想,不会用hashmap,要学
  • 排序解决,中间元素必为结果,思想自己想
  • 传统的统计,双循环嵌套,为了方便些,可以用STL里面vector和find()函数,肯定比自己写循环快。这个方法竟然快于方法2,可能原因,没有遍历所有数,中途就可返回值。在测试形式多的时候,快一点。
class Solution {
public:
    int majorityElement(vector& nums) {
        double len = nums.size() / 2.0;
        vector data;
        vector count;
        for(int i = 0; i < nums.size(); i++)
        {
            vector::iterator result = find(data.begin(),data.end(),nums[i]);
            if(result == data.end())
            {
                data.push_back(nums[i]);
                count.push_back(1);
                if(1 > len)return nums[i];
            }
            else
            {
                if(++count[result - data.begin()] > len)return nums[i];
            }
        }
    }
};

你可能感兴趣的:(leetcode 169)