国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

229. Majority Element II

2019-11-08 03:20:13
字體:
來源:轉載
供稿:網友

Given an integer array of size n, find all elements that appear more than ? n/3 ? times. The algorithm should run in linear time and in O(1) space.

基于Boyer-Moore Majority Vote algorithm的思想,代碼如下:

public class Solution {    public List<Integer> majorityElement(int[] nums) {        List<Integer> res = new ArrayList<Integer>();        if (nums.length == 0) {            return res;        }        int count1 = 0, count2 = 0, num1 = 0, num2 = 0;        for (int num: nums) {            if (num == num1) {                count1 ++;            } else if (num == num2) {                count2 ++;            } else if (count1 == 0) {                num1 = num;                count1 = 1;            } else if (count2 == 0) {                num2 = num;                count2 = 1;            } else {                count1 --;                count2 --;            }        }        count1 = 0; count2 = 0;        for (int num : nums) {            if (num == num1) {                count1 ++;            } else if (num == num2) {                count2 ++;            }        }        if (count1 > nums.length / 3) {            res.add(num1);        }        if (count2 > nums.length / 3) {            res.add(num2);        }        return res;    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青田县| 马山县| 仁化县| 手机| 延边| 格尔木市| 阳山县| 林芝县| 定安县| 固始县| 太保市| 洞口县| 行唐县| 临泉县| 定州市| 渭南市| 南靖县| 萨嘎县| 花莲市| 古浪县| 温州市| 盐城市| 伊川县| 稻城县| 怀仁县| 六枝特区| 曲阜市| 丰都县| 四川省| 石台县| 屏南县| 岳池县| 桦南县| 桐庐县| 化德县| 阳新县| 黄冈市| 华宁县| 青田县| 正宁县| 南昌市|