【leetcode】求眾數
求眾數
一、題目描述
給定一個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋
的元素。
你可以假設陣列是非空的,並且給定的陣列總是存在眾數。
示例 1:
輸入: [3,2,3]
輸出: 3
示例 2:
輸入: [2,2,1,1,1,2,2]
輸出: 2
二、思路
先假設第一個元素為眾數,計數器置為1,遍歷陣列,當遇到相同的元素時,計數器加1,否則減1,任何計算器為0的時候,就假設下一個元素為眾數,計數器再置為1。迴圈結束時,返回我們假設的眾數,即要求的眾數。
三、程式碼演示
public int majorityElement(int[] nums) {
int result = nums[0];
int times = 1;
for (int i = 1; i < nums.length; i++) {
if (result == nums[i]) {
times++;
} else {
times--;
if (times == 0) {
result = nums[++i];
times++;
}
}
}
return result;
}
相關文章
- Leetcode刷題——求眾數LeetCode
- 【LeetCode】求眾數(四種方法)LeetCode
- LeetCode169求眾數——分治LeetCode
- LeetCode每日一題:求眾數(No.169)LeetCode每日一題
- Leetcode 169:求眾數(最詳細的解法!!!)LeetCode
- 求眾數
- LeetCode 之 JavaScript 解答第169題 —— 求眾數 I(Majority Element)LeetCodeJavaScript
- 雜湊求眾數
- 每日一算--求眾數
- 演算法題:求眾數演算法
- 演算法:Majority Element(求眾數)演算法
- 【演算法】求眾數-js解法演算法JS
- 每日一道演算法題--leetcode 169--求眾數--python--兩種方法演算法LeetCodePython
- 水題 求眾數 (hash的練習)
- 優化的求眾數方法 - 摩爾投票演算法(演算法思想+求眾數的三種方法+摩爾投票演算法改進版求眾數 II)優化演算法
- 【演算法】已知必存在眾數,求該眾數 -- Boyer-Moore 投票演算法演算法
- Leetcode刷題之 【最近的請求次數】LeetCode
- 演算法面試題彙總_2求眾數演算法面試題
- 分治法求眾數和重數(含檔案輸入輸出)
- 求眾數、排序演算法、二分法排序演算法
- Leetcode刷題筆記 501. 二叉搜尋樹中的眾數LeetCode筆記
- 【20190326】【每天一道演算法題】求眾數(分治演算法)演算法
- 均值、中位數、眾數
- 求完全數個數
- Leetcode兩數相加LeetCode
- LeetCode——兩數相加LeetCode
- LeetCode 263[醜數]LeetCode
- LeetCode - 兩數之和LeetCode
- LeetCode:兩數之和LeetCode
- 求正整數
- 區間眾數(分塊)
- 有趣的請求引數/請求頭
- LeetCode 2——兩數相加LeetCode
- LeetCode 29——兩數相除LeetCode
- LeetCode迴文數(Python)LeetCodePython
- python LeetCode 兩數相除PythonLeetCode
- leetcode #1 兩數之和LeetCode
- LeetCode 1 兩數之和LeetCode