美文网首页
229. Majority Element II

229. Majority Element II

作者: namelessEcho | 来源:发表于2017-09-26 18:21 被阅读0次

思路就是三个三个删,如何描述是三个三个删的关键是两个count要描述好。之前没仔细写,count应该有四种case 都要注意。

class Solution {
    public List<Integer> majorityElement(int[] nums) {
        List<Integer> result = new ArrayList<>();
        if(nums==null||nums.length==0) return result;
        int target1 = nums[0];
        int target2 = 0;
        for(int i = 0 ;i<nums.length;i++ )
        {
            if(nums[i]!=target1)
            {
                target2=nums[i];
                break;
            }
        }
        int count1= 0;
        int count2= 0;
        for(int i = 0;i<nums.length;i++  )
        {
            if(nums[i]==target1)
                count1++;
            else if(nums[i]==target2)
                count2++;
            else
            {
                if(count1==0&&count2==0)
                {
                    target1=nums[i];
                    count1++;
                }  
                else if(count1!=0&&count2==0)
                {
                    target2=nums[i];
                    count2++;
                }
                  else if(count1==0&&count2!=0)
                {
                    target1=nums[i];
                    count1++;
                }
                else
                {
                    count2--;
                    count1--;
                }
            }
        }
        count1= 0;
        count2= 0;
         for(int i = 0;i<nums.length;i++  )
         {
             if(nums[i]==target1)
                 count1++;
             if(nums[i]==target2)
                 count2++;
         }
        if(count1>nums.length/3)
            result.add(target1);
        if(count2>nums.length/3)
        {
            if(target1!=target2)
                 result.add(target2);
        }
        return result;
    }
}

相关文章

  • II Boyer-Moore Majority Vote Alg

    229. Majority Element II Given an integer array of size n...

  • 229. Majority Element II

    先排序 然后顺序扫描,需要注意边缘,代码如下: 但是这道题目限制了时间是限行时间空间是o(1),因此,既不能使用排...

  • 229. Majority Element II

    Given an integer array of size n, find all elements that ...

  • 229. Majority Element II

    题目 题目很简短,给定一个包含n个数字的数组,找出所有出现次数超过 ⌊ n/3 ⌋ 次的数。要求O(n)时间复杂度...

  • 229. Majority Element II

    思路就是三个三个删,如何描述是三个三个删的关键是两个count要描述好。之前没仔细写,count应该有四种case...

  • 229. Majority Element II

    Question Given an integer array of size n, find all eleme...

  • 229. Majority Element II

    https://leetcode.com/problems/majority-element-ii/ 给定一个数组...

  • 229. Majority Element II

    给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 摩尔投票法 大于 n/3 的数最...

  • 229. Majority Element II (M)

    Given an integer array of size n, find all elements that ...

  • Majority Element II

    Majority Element II 今天是一到有关数学计算的题目,是Majority Element(回复01...

网友评论

      本文标题:229. Majority Element II

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