算法題小結

20. 表示數值的字符串**程序寫的很好

有固定的模板,先是【正負號】【數字】【.】【數字】【e】【正負號】【數字】,其中正負號可以省略。

程序思路,輸入字符串

判斷正負號

判斷數字

如果有點,判斷後面是否是數字(.前後可以沒有數字)

如果是e,判斷是否有數字(e前後必須跟數字)

21. 調整數組順序使奇數位於偶數前面**程序號

快速排序,兩個指針,一前一後,查到就交換,也可以用我總結的排序方法裏的快速排序實現。

22. 鏈表中倒數第k個節點

O(1)的方法,兩個指針,從頭相差k個節點,第一個到null的時候,第二個就到了倒數第k個。

23. 鏈表中環的入口節點

它分成了三步走,兩個指針,一個快一個慢,慢的和快的相遇處在環內,接着循環一遍,查環大小,最後兩個指針,相差環長,一步步向前,相遇處即環入口。

24. 反轉鏈表

三個節點,pre,curnext,兩個節點會斷鏈,注意頭結點爲空的情況。

25. 合併連個排序的鏈表

遞歸,每次取一個頭。

26. 判斷一個樹是不是另一個的子結構**

先查匹配的root節點,查到後再遞歸查其他的。

double類型不能直接比較相等與否,精度不同,如果需要寫,例子函數如下。

 

27. 二叉樹的鏡像

遞歸,左右交換

28. 對稱的二叉樹**代碼有點意思

判斷是否對稱,前序遍歷,先左後右,先右後左,兩個得到的結果相同

29. 順時針打印矩陣

這個題作者沒考慮前面,他僅考慮了方形的情況。

30. 包含min函數的棧

這個他寫的也不好,會出現錯誤。

31. 棧的壓入、彈出序列**程序寫的好

判斷棧的順序是否正確。

代碼流程

棧空或者棧頂和彈出的序列不同,壓入。

判斷棧頂和彈出序列,若不同,跳出,相同,下一個。

最後判斷棧是否空,彈出序列是否對比完,返回結果。

32. 從上到下打印二叉樹

不分行打印,類似於隊列,先進先出。

注:備忘。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章