《劍指offer》原始碼筆記

2021-07-30 10:39:25 字數 941 閱讀 7106

本篇針對原始碼問題感想。

while (!stack2.empty())

t head = stack2.top();

stack2.pop();

感覺這兩步操作順序應該是反過來的。

vs2013版本執行報錯,360預設為木馬,可能是對指標的某些操作使得360智障了。

新增信任白名單。

新增iostream,pause

遞迴可做

快排思想利用partition想法的複雜度為o(n)原因如下:

partition的複雜度為o(n),然後需要做有限次即可,所以總體還是o(n)。

但是當運氣比較差的時候也是快排運氣最差的時候。

可以維護三個佇列m2,m3,m5來儲存每個醜數乘以2,3,5的值,然後不斷找每個佇列中的最小值。找到醜數數列。

可以用動態規劃:f(k,n)=f(k-1,n-1)+f(k-1,n-2)+f(k-1,n-3)+f(k-1,n-4)+f(k-1,n-5)+f(k-1,n-6)

f(1,1)=f(1,2)=f(1,3)=f(1,4)=f(1,5)=f(1,6)=1

位運算:整數-1,再和原整數做與運算會把最右邊乙個1變成0。

函式打包:

void reorderoddeven_2(int *pdata, unsigned int

length)

void reorder(int *pdata, unsigned int

length, bool (*func)(int))

bool iseven(int n)

陣列一直做異或,兩個相同的數字就變成0了

整數序列和兩個數類似,兩個數為兩側收縮,序列為兩個標誌範圍內序列,為一側伸縮

左旋轉是兩步:分段翻轉,整體翻轉

劍指offer筆記

對於這道題來說,書上的和leetcode上的是不一樣的。在leetcode上,是一位陣列中判斷是否有重複數字,有的話任意返回乙個就行。這個思路也有兩個 1.先用乙個排序如快排o nlogn 然後就判斷相鄰元素是否相等,若相等直接返回即可。2.用乙個集合set,遍歷陣列放進去,因為集合有唯一性,若哪個...

劍指offer最優解Java版原始碼索引

劍指offer 剖析了50個典型的程式設計師面試題,從基礎知識 質量 解題思路 優化效率和綜合能力五個方面系統整理了影響面試的5個要點。是一本計算機大學生演算法提高必備的一本書。2019.7.20 全部更新完畢 按照題目使用的演算法或者資料結構進行粗略分類 二進位制中1的個數 數值的整數次方 二維陣...

劍指offer筆記整理

本部落格借鑑了這篇部落格的版面設計,以及部分解題思路,主要用於個人劍指offer的刷題過程中的筆記整理。鍊錶部分 8道 劍指offer 三 從尾到頭列印鍊錶 劍指offer 十四 鍊錶中倒數第k個結點 劍指offer 十五 反轉鍊錶 劍指offer 十六 合併兩個排序的鍊錶 劍指offer 二十五 ...