20210112 第四題 最小棧

2021-10-14 15:14:56 字數 821 閱讀 6577

題目要求:

設計乙個支援 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。

push(x) —— 將元素 x 推入棧中。

pop() —— 刪除棧頂的元素。

top() —— 獲取棧頂元素。

getmin() —— 檢索棧中的最小元素。

思路:嘗試用陣列實現棧的功能,無果,後來發現vector可以實現,但是經了解棧屬於vector這一類,於是嘗試用兩個棧來實現此題,主要是為了尋找最小元素。

**實現:

class minstack 

public void push(int x) else

}public void pop()

public int top()

public int getmin()

public int min(int x,int y)else

}}/**

* your minstack object will be instantiated and called as such:

* minstack obj = new minstack();

* obj.push(x);

* obj.pop();

* int param_3 = obj.top();

* int param_4 = obj.getmin();

*/

棧的功能函式:

push(); 推入棧

peek(); 棧頂元素

empty(); 判斷是否為空

pop(); 彈出

第四題 替換空格

可以使用這樣的方法 先遍歷一遍字串,求出字串中空格的個數,由此,可以計算出替換之後的字串的總長度,然後標記出字串的末尾p1和替換之後的末尾p2。再逐步往前移動p1,p2,同時將p1資料複製到p2的位置中,如果p1指向了乙個空格,則將p1往前移動一格,p2的位置依次插入 0 2 並往前移動。當空格替換...

2018暑假第四題

題目 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。python 示例 1 輸入 121輸出 true示例 2 輸入 121輸出 false解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10輸出 false解釋 ...

CCF第四題思考

當可以隨意選擇兩個節點的時候它是貪心法 哈夫曼 當只能選相鄰節點時,它變成了動態規劃,為什麼只能選相鄰節點呢,因為只要從左到右選葉結點,得到的就是字典序,而我之前的想法是,先構造出哈夫曼樹,再把葉結點代表的編碼從左到右賦給abcde,但是哈夫曼樹可以有很多顆,哪一顆才是字典序最小的呢,這就很難。為何...