劍指offer真題1 5

2021-09-03 02:05:45 字數 2082 閱讀 3850

第一題:在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

分析:因為這是乙個有序的二維陣列,且從左至右遞增,從上至下遞增,經過畫圖就會發現,再這個二維陣列中有兩個特殊的位置,左下角和右上角,這兩個位置和其他地方不同,只有兩條路徑,分析起來更為簡單,且兩條路徑的增長方向相反,更易比較

分析:

法一:首先考慮的是插入這個字串後,原字串的字元下標全部都會改變,如果用從前往後遍歷,用頭插的話效率太低,所以用尾插,相當於先將後路鋪好再來解決問題。

class solution 

for(int i = length-1; i >= 0; --i)

else

}}};

法二:呼叫string類的方法,直接可以完成這種操作(不過有時候編譯可能不通過,也有點像作弊的感覺)

class solution 

auto ret = s.c_str();

strcpy(str, ret);

}};

第三題:輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。

分析:法一:先入棧在出棧就歐克

class solution 

while(!reverse.empty())

return result;}};

法二:反向迭代器列印

class solution 

return (vector(result.rbegin(), result.rend()));}};

第四題:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

分析:重建二叉樹,必須要中序遍歷的結果,先找到根節點,前序第乙個元素就是根節點,然後在通過根節點找到中序遍歷中根節點的位置,中序中根節點的左邊的就是根節點的左子樹,右邊就是右子樹,用歸併排序即可重建二叉樹

class solution 

treenode* head = new treenode(pre[0]);

vectorleft_pre, left_vin, right_pre, right_vin;

int key = 0;

for(int i = 0; i < vinlen; ++i)

for(int i = 0; i < key; ++i)

for(int i = key+1; i < vinlen; ++i)

head->left = reconstructbinarytree(left_pre, left_vin);

head->right = reconstructbinarytree(right_pre, right_vin);

return head;}};

第五題:用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別

分析:1.入棧:先判斷b棧有沒有資料,如果有資料,需要先出棧,因為必須保證b棧是空棧,然後再讓a棧入棧;

2.出棧:先判斷a棧有沒有資料,如果有資料,需要先出棧,將資料全部壓入b棧中,然後再讓b棧出棧。

class solution

stack1.push(node);

}int pop()

int result = stack2.top();

stack2.pop();

return result;

}private:

stackstack1;

stackstack2;

};

劍指offer真題11 15

11題 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示 法一 讓n減去1,我們發現,在讓他和原來的n按位與之後,n中的1會減少乙個,依次迴圈下去,就可以累計出1的個數,且這個方式不用擔心負數的問題 class solution return count 法二 定義乙個flag為1,...

劍指offer刷題 15

面試題29 順時針列印矩陣 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。void printmatrixcloockwisely int numbers,int columns,int rows void printmatrixincircle int numbers,int co...

劍指offer 題15(反轉鍊錶)

反轉鍊錶 輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回listnode defreverselist self,phead w...