Leetcode刷題記錄 第一題

2021-10-10 12:10:29 字數 605 閱讀 9770

給定乙個大小為 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 ...