題目要求:
設計乙個支援 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,但是哈夫曼樹可以有很多顆,哪一顆才是字典序最小的呢,這就很難。為何...