[LeetCode]229. Majority Element II

    xiaoxiao2021-03-25  67

    https://leetcode.com/problems/majority-element-ii/?tab=Description

    找出数组中出现次数大于⌊ n/3 ⌋的数

    满足条件的数可能为0、1、2个,记录这可能的两个数的值,然后查这两个数在数组里面出现的次数是否满足要求

    public class Solution { public List<Integer> majorityElement(int[] nums) { List<Integer> res = new LinkedList(); int c1 = 0; int c2 = 0; int n1 = 0; int n2 = 0; for (int n : nums) { if (n == n1) { c1++; } else if (n == n2) { c2++; } else if (c1 == 0) { c1 = 1; n1 = n; } else if (c2 == 0) { c2 = 1; n2 = n; } else { c1--; c2--; } } c1 = 0; c2 = 0; for (int n : nums) { if (n == n1) { c1++; } else if (n == n2) { c2++; } } if (c1 > nums.length / 3) { res.add(n1); } if (c2 > nums.length / 3) { res.add(n2); } return res; } }

    转载请注明原文地址: https://ju.6miu.com/read-32837.html

    最新回复(0)