給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列**現次數大於 ⌊ n/2 ⌋ 的元素。
你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。
示例 1:
輸入: [3,2,3]
輸出: 3
示例 2:
輸入: [2,2,1,1,1,2,2]
輸出: 2
上手的第一時間用的排序演算法:
class
solution
}
時間複雜度為排序的時間複雜度;
但看完題解後新學了boyer-moore 投票演算法,比排序演算法時間複雜度更低。
class
solution
count +=
(num == candidate)?1
:-1;
}return candidate;
}}
時間複雜度:o(n)
空間複雜度:o(1)
官方題解位址
LeetCode 刷題記錄(1 5題)
1 兩數之和 題目鏈結 class solution 一次雜湊法 deftwosum self,nums,target type nums list int type target int rtype list int m for i in range len nums minus target n...
leetcode刷題記錄(一)
知識點 數字邏輯,深度優先遍歷,回溯,動態規劃 解題思路 前排的大部分樓主都是利用格雷編碼的性質,動態規劃求解。如果沒學過格雷編碼的同學可能很難理解。其實這道題也可以看成是圖的搜尋,利用深度優先搜尋和回溯可以求解。用乙個n維的陣列儲存當前數字的每一位,分別改變每一位,遞迴地搜尋,最終可以找到乙個可行...
leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...