原创 Python 全局變量與global關鍵字

轉載自:海晨威 Python 全局變量與global關鍵字 在Python的變量使用中,經常會遇到這樣的錯誤: local variable 'a' referenced before assignment 它的意思是:局部變量

原创 字符串模式匹配選re.match還是re.compile

個人見解和建議 如果使用者不在乎字符串模式匹配的時效性,或者pattern只使用一次,選re.match。因爲re.match使用方法比較容易理解和掌握,也比較清晰明瞭 如果使用者非常在乎時效性,同時同一個pattern需要使用

原创 樹——023二叉搜索樹的後序遍歷序列

1,問題的描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 2,解題思路 二叉樹後序遍歷序列的最後一個值是根節點的值,二叉搜索樹後序遍歷序列的

原创 其他算法——順時針打印矩陣

1,問題描述 輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,3,4,8,12,16,

原创 棧和隊列——021棧的壓入、彈出序列(判斷棧的出入合法性)

1,問題描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3

原创 樹——022從上往下打印二叉樹(二叉樹的層次遍歷)

1,問題描述 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 2,解題思路 首先構建一個輔助隊列存放二叉樹節點,那麼接下來該如何層次遍歷呢?步驟如下: 將根節點添加到隊列中 循環判斷隊列是否爲空,若不爲空則執行以下循環體語句: 將

原创 棧和隊列——020包含min函數的棧

1,問題描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。 2,解題思路 em。。。。我覺得這道題的難點是題意理解上,只要把問題理解了,那解題思路還是較簡單的。 這道題是讓我們設計

原创 數組——032把數組排成最小的數

1,問題描述 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字爲321323。 2,解題思路 先將整型數組轉換成St

原创 其他算法——031整數中1出現的次數(從1到n整數中1出現的次數)

1,問題描述        求出1 ~ 13的整數中1出現的次數,並算出100 ~ 1300的整數中1出現的次數?爲此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。AC

原创 樹——024二叉樹中和爲某一值的路徑

1,問題描述 輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,數組長度大的數組靠前) 2,解題思路 (1)

原创 動態規劃——030連續子數組的最大和

1,問題描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全爲正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,

原创 排序——029最小的K個數

1,問題描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 2,解題思路 (1)思路一:直接利用各種排序算法(快排、冒泡排序、選擇排序、堆排序)對數組進行從小到

原创 數組——028數組中出現次數超過一半的數字

1,問題描述 數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2}。由於數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0。 2,解題思路

原创 劍指offer題目歸類

文章目錄1,數據結構類題目(1),數組(2),鏈表(3),樹(4),棧和隊列(5),堆(6),Hash Table(7),圖2,具體算法類題目(1),查找算法(2),全排列(3),動態規劃(4),回溯(5),排序(6),位運算(7

原创 鏈表——025複雜鏈表的複製

1,問題的描述 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回空) 2,解