面試演算法 乙個有getMin功能的棧

2021-09-19 09:39:21 字數 1077 閱讀 3553

【題目】實現乙個特殊的棧,在實現棧的基本功能上再實現乙個實現返回棧中最小元素的操作。

【要求】

1,pop、push、getmin操作的時間複雜度都是o(1);

2,設計的棧型別額可以使用現成的棧結構。

第一種**實現:

public class getminstack_1 

public void push(int newnum)else if (newnum <= getmin())

stackdata.push(newnum);

}public int pop()

int value = stackdata.pop();

if (value == getmin())

return value;

}private int getmin()

return stackmin.peek();

}public static void main(string args) ;

for(int i:testnum)

for(int i = 0; i < testnum.length; i++)

}}

第二種**實現 :

public class getminstack_2 

public void push(int newnum)

else if (newnum <= getmin()) else

stackdata.push(newnum);

}public int pop()

int value = stackdata.pop();

stackmin.pop();

return value;

}private int getmin()

return stackmin.peek();

}public static void main(string args) ;

for(int i:testnum)

for(int i = 0; i < testnum.length; i++)

}}

乙個有getMin功能的棧

前言 這是學習 程式設計師 面試指南 一書的第一篇文章,也是部落格的第一篇文章,給自己加油,從現在開始堅持記錄學習。題目 實現乙個特殊的棧,在實現棧的基本功能的基礎上,再實現返回棧中最小值的操作。要求 1.pop push getmin操作的時間複雜度都是o 1 2.設計的棧型別可以使用現成的棧結構...

設計乙個有GetMin功能的棧

兩種資料壓入規則,也就是兩種實現的方法,利用兩個棧,乙個stackdata棧用來壓入所有的資料,所有資料都會壓入此棧,乙個satckmin用來壓入最小元素 對應的就是stackdata中的最小元素 第一種方法 壓棧規則 1 當將資料壓入棧stackdata時,判斷stackmin棧是否為空,為空則將...

設計乙個有getMin功能的棧

使用c 完成 程式設計師 面試指南 it名企演算法與資料結構題目 實現乙個特殊的棧,在實現棧的基本功能基礎上,再實現返回棧中最小元素的操作 使用兩個棧,乙個棧用來儲存當前棧中的元素,起功能和乙個正常的棧沒有區別,這個棧記為stackdata 另乙個棧用於儲存每一步的最小值,這個棧記為stackmin...