欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java算法題解LeetCode30包含min函數(shù)的棧實例

 更新時間:2023年01月05日 10:55:16   作者:itbird01  
這篇文章主要為大家介紹了java算法題解LeetCode30包含min函數(shù)的棧實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

題目

劍指 Offer 30. 包含min函數(shù)的棧 定義棧的數(shù)據(jù)結構,請在該類型中實現(xiàn)一個能夠得到棧的最小元素的 min 函數(shù)在該棧中,調用 min、push 及 pop 的時間復雜度都是 O(1)。

示例:

MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.min(); --> 返回 -2.

提示: 各函數(shù)的調用總次數(shù)不超過 20000 次

解題思路

1.題目要求實現(xiàn)的最小返回其實不難,最簡單的,只需要去排序就可以了,但是這樣的話,無法保證調用 min、push 及 pop 的時間復雜度都是 O(1)

2.正常一個棧的push、pop、peek的時間復雜度都是 O(1),那么現(xiàn)在就是想辦法去解決,min函數(shù)時間復雜度的問題了?

3.既然題目限制了時間復雜度,那么這時我們可以想一下,是否可以借助空間來實現(xiàn)?使用輔助棧?

4.一個棧是主棧 stackstack,另一個是輔助棧 minStackminStack,用于存放對應主棧不同時期的最小值

import java.util.Stack;
class MinStack {
	Stack<Integer> stack;
	Stack<Integer> minstack;
	/** initialize your data structure here. */
	public MinStack() {
		stack = new Stack<Integer>();
		minstack = new Stack<Integer>();
	}
	public void push(int x) {
		stack.push(x);
		if (minstack.isEmpty()) {
			minstack.push(x);
		} else {
			int k = minstack.peek();
			if (k > x) {
				minstack.push(x);
			} else {
				minstack.push(k);
			}
		}
	}
	public void pop() {
		stack.pop();
		minstack.pop();
	}
	public int top() {
		return stack.peek();
	}
	public int min() {
		return minstack.peek();
	}
}
/**
 * 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.min();
 */

以上就是java算法題解LeetCode30包含min函數(shù)的棧實例的詳細內容,更多關于java算法包含min函數(shù)的棧的資料請關注腳本之家其它相關文章!

相關文章

  • Spring的Bean容器介紹

    Spring的Bean容器介紹

    今天小編就為大家分享一篇關于Spring的Bean容器介紹,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • java對象轉型實例分析

    java對象轉型實例分析

    這篇文章主要介紹了java對象轉型的概念及用法,并以實例形式進行了較為詳細的介紹,需要的朋友可以參考下
    2014-10-10
  • Spring Boot整合Spring Cache及Redis過程解析

    Spring Boot整合Spring Cache及Redis過程解析

    這篇文章主要介紹了Spring Boot整合Spring Cache及Redis過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 配置IDEA中java項目配置swagger全過程

    配置IDEA中java項目配置swagger全過程

    這篇文章主要介紹了配置IDEA中java項目配置swagger全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • emoji表情與unicode編碼互轉的實現(xiàn)(JS,JAVA,C#)

    emoji表情與unicode編碼互轉的實現(xiàn)(JS,JAVA,C#)

    這篇文章主要介紹了emoji表情與unicode編碼互轉的實現(xiàn)(JS,JAVA,C#),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 微服務通過Feign調用進行密碼安全認證操作

    微服務通過Feign調用進行密碼安全認證操作

    這篇文章主要介紹了微服務通過Feign調用進行密碼安全認證操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • mybatis 如何判斷l(xiāng)ist集合是否包含指定數(shù)據(jù)

    mybatis 如何判斷l(xiāng)ist集合是否包含指定數(shù)據(jù)

    這篇文章主要介紹了mybatis 判斷l(xiāng)ist集合是否包含指定數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java實現(xiàn)浪漫流星表白的示例代碼

    Java實現(xiàn)浪漫流星表白的示例代碼

    本文將利用Java語言實現(xiàn)浪漫流星表白,可以實現(xiàn)這些功能:播放音樂、自定義流星數(shù)量、飛行速度、光暈大小、流星大小,自定義表白話語,感興趣的可以學習一下
    2022-05-05
  • springmvc 參數(shù)綁定總結

    springmvc 參數(shù)綁定總結

    本篇文章主要介紹了詳解springmvc 參數(shù)綁定,詳細的介紹了springmvc各種參數(shù)綁定的情況,具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • Mybatis批量插入和批量更新失敗問題

    Mybatis批量插入和批量更新失敗問題

    這篇文章主要介紹了Mybatis批量插入和批量更新失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論