
開源地址:點擊該鏈接
前言
最近一個多月發現以【每天一題】系列的形式來更新題目并不太合適,一是沒有足夠多合適的題目來更新,二是單獨拿出來一個題來講不太系統,應該把多個相似的題目放在一起講,這樣才能夠達到舉一反三的效果,所以決定停止【每天一題】系列,改為【每周小結】,然后每個月再進行一次月總結,接下來言歸正傳,
11月第1周共有20道題目,所有原始碼以及對應的解題思路均勻開源到 GitHub,公眾號內回復 “LeetCode” 獲取,具體分類如下,
映射
該類題目常用資料結構為:map, unordered_map, set 或 使用陣列進行 hash 映射,
- 0242_valid_anagram
- 0290_word_pattern
- 0299_bulls_and_cows
以上三題都是字符或字串之間的雙映射關系是否成立,根據情況使用map、unordered_map 或 使用陣列也可以 - 0349_intersection_of_two_arrays
- 0350_intersection_of_two_arrays_ii
以上兩題是求解兩個陣列的交集,第一個題目只需要找出有幾種不同的即可,不關心數量;第二個題目需要找出具體多少個相同字符,重復的也算進去 - 0383_ransom_note
這一個題目是查詢一個字串中是否含有不少于另一個字串字符數量
深度優先搜索
- 0257_binary_tree_paths
腦筋急轉彎
這個題目比較有意思,剛開始想了很多種做法,但是感覺太復雜了,應該會超時,想想算了,看看官方題解,結果竟然就一句搞定了,我就***了,看完決議后,只能說,服了,感興趣的可以看看官方的解法,這里就不贅述了,
- 0292_nim_game
數學
這類題目都是可以使用數學方法解決的題目,并不是太多的考察資料結構,
- 0258_add_digits
- 0263_ugly_number
- 0268_missing_number
該題目有多種解法,第一種是根據遞增陣列求解,然后計算差值就可得到確實的數是哪一個;第二種是官方給出的一種,通過異或運算得出,方法很有意思;兩種方法復雜度相同 - 0303_range_sum_query_immutable
這個題目就是預先計算積分即可,了解影像處理的都知道影像積分這個概念,只不過這里是一維陣列,而影像是二維的(不考慮顏色通道時),所以很簡單 - 0326_power_of_three
- 0342_power_of_four
這兩個題目是判斷給定數是否是某個數的冪,最簡單的方法就是暴力分解,一種做法是將給定數轉化成對應數的進制,即3進制或4進制,轉換后的數如果是它的冪,那么一定只含有一個 1,所以判斷一下就行了;另一種方法就是如果先找出最大的冪是多少,如果給定數也是,那么最大冪一定可以整除這個數,復雜度為O(1)
二分法
二分法就沒什么好說的了,就那些操作,左右各一個,中間數大了右邊的往左移動,中間數小了左邊的往右移動,直到結束即可,
- 0278_first_bad_version
- 0367_valid_perfect_square
- 0374_guess_number_higher_or_lower
反轉陣列
反轉陣列就是使用雙指標了,第一個題目直接進行即可,第二個題目只反轉元音字母,所以指標移動時不再是++或--操作,而是以元音字母為單位移動,也沒什么復雜的,
- 0344_reverse_string
- 0345_reverse_vowels_of_a_string
位運算
根據計算機原理,使用二進制的異或和與運算實作加法,其中異或表示加法,與運算表示進位,
- 0371_sum_of_two_integers
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/127156.html
標籤:其他
上一篇:92. 反轉鏈表 II
