原创 劍指offer 矩陣中的路徑是否存在--回溯法則

題目: 請設計一個函數,用來判斷在一個矩陣中是否存在一條包含某字符串所有字符的路徑。路徑可以從矩陣中的任意一個格子開始,每一步可以在矩陣中向左,向右,向上,向下移動一個格子。如果一條路徑經過了矩陣中的某一個格子,則該路徑不能再進入該格子。

原创 [劍指offer] C++順時針打印矩陣,注意矩陣的行和列不一定相等

輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下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,15,14,1

原创 mpi求前綴和基本原理及代碼實現

原文參考: https://blog.csdn.net/encaidx/article/details/6967834 https://blog.csdn.net/kaka0930/article/details/50155159 前綴和

原创 劍指offer:複製複雜鏈表 使用C++實現

題目: 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針random指向一個隨機節點),請對此鏈表進行深拷貝,並返回拷貝後的頭結點。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回

原创 劍指offer:棧的壓入、彈出序列 使用C++實現

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

原创 劍指offer:判斷一個序列是不是二叉搜索數的後序遍歷,二叉搜索數:左子樹小於根節點,右子樹大於根節點

題目: 輸入一個非空整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 //判斷是否是搜索二叉樹的遍歷 //搜索二叉樹:左子樹小於根節點,右邊子樹大於根節點

原创 劍指offer:判斷一個二叉樹是否是一個平衡二叉樹:平衡二叉樹:左右子樹深度差不超過1

題目: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 在這裏,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹   題目解析:已經寫到註釋裏面了。 class Solution { //平衡二叉樹是指左右子樹的深度差不能超

原创 劍指offer:從上到下打印二叉樹,有稱之爲廣度優先遍歷

題目: 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 題目解析我已經寫入到註釋裏面了! /* struct TreeNode { int val; struct TreeNode *left; struct TreeNo

原创 劍指offer:打印二叉樹中和爲K的所有路徑: 二叉樹中和爲某一值的路徑

題目: 輸入一顆二叉樹的根節點和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 題目解析已經寫到代碼中啦! /* struct TreeNode { int

原创 劍指offer - 二叉樹的子結構:判斷B是否是A的子結構

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 解釋和說明已經寫在註釋裏面了: /* struct TreeNode { int val;// 這是和是上面不一樣的地方,樹上面是d

原创 劍指offer :操作給定的二叉樹,將其變換爲源二叉樹的鏡像。

題目描述: 操作給定的二叉樹,將其變換爲源二叉樹的鏡像。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNod

原创 劍指offer:合併兩個鏈表 在線練習

題目: 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 思路已經寫在代碼註釋裏面了: /* struct ListNode {     int val;     struct ListNode

原创 劍指offer:使用特殊字符替換字符串中的空格(牛客網練習)

請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。 class Solution { public: // 有時間限制,

原创 劍指offer[18-2] 刪除了鏈表中重複的節點(不保留)

我今天真的是心態崩了,我的天,自己寫了一遍沒有通過,又按照書上的又敲了一遍還是提示通過率爲0,我太難了 今天就來細細的分析這個! 上題目: 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。

原创 劍指offer【2-13】:機器人運動範圍

題目: 地上有一個m行和n列的方格。一個機器人從座標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數位之和大於k的格子。 例如,當k爲18時,機器人能夠進入方格(35,37),因爲3+5+3