From c29021befd2cdeb1ebf268bcd9f4a9ae9a4a22c5 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 4 Nov 2020 01:40:59 +0800 Subject: [PATCH] auto commit --- docs/notes/30. 包含 min 函数的栈.md | 10 ++++++++-- notes/30. 包含 min 函数的栈.md | 10 ++++++++-- notes/pics/image-20201104013936126.png | Bin 0 -> 16054 bytes 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 notes/pics/image-20201104013936126.png diff --git a/docs/notes/30. 包含 min 函数的栈.md b/docs/notes/30. 包含 min 函数的栈.md index 0a776131..c572b16c 100644 --- a/docs/notes/30. 包含 min 函数的栈.md +++ b/docs/notes/30. 包含 min 函数的栈.md @@ -1,13 +1,19 @@ # 30. 包含 min 函数的栈 -[NowCoder](https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tqId=11173&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +## 题目链接 + +[牛客网](https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tqId=11173&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) ## 题目描述 -定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的 min 函数。 +实现一个包含 min() 函数的栈,该方法返回当前栈中最小的值。 ## 解题思路 +使用一个额外的 minStack,栈顶元素为当前栈中最小的值。在对栈进行 push 入栈和 pop 出栈操作时,同样需要对 minStack 进行入栈出栈操作,从而使 minStack 栈顶元素一直为当前栈中最小的值。在进行 push 操作时,需要比较入栈元素和当前栈中最小值,将值较小的元素 push 到 minStack 中。 + +
image-20201104013936126

+ ```java private Stack dataStack = new Stack<>(); private Stack minStack = new Stack<>(); diff --git a/notes/30. 包含 min 函数的栈.md b/notes/30. 包含 min 函数的栈.md index 0a776131..c572b16c 100644 --- a/notes/30. 包含 min 函数的栈.md +++ b/notes/30. 包含 min 函数的栈.md @@ -1,13 +1,19 @@ # 30. 包含 min 函数的栈 -[NowCoder](https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tqId=11173&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +## 题目链接 + +[牛客网](https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tqId=11173&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) ## 题目描述 -定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的 min 函数。 +实现一个包含 min() 函数的栈,该方法返回当前栈中最小的值。 ## 解题思路 +使用一个额外的 minStack,栈顶元素为当前栈中最小的值。在对栈进行 push 入栈和 pop 出栈操作时,同样需要对 minStack 进行入栈出栈操作,从而使 minStack 栈顶元素一直为当前栈中最小的值。在进行 push 操作时,需要比较入栈元素和当前栈中最小值,将值较小的元素 push 到 minStack 中。 + +
image-20201104013936126

+ ```java private Stack dataStack = new Stack<>(); private Stack minStack = new Stack<>(); diff --git a/notes/pics/image-20201104013936126.png b/notes/pics/image-20201104013936126.png new file mode 100644 index 0000000000000000000000000000000000000000..8792cb4c34e3933cdff9c23d7247e3563cbc13b1 GIT binary patch literal 16054 zcmeIZcTiMc8zu-Updc7QCH_!?WF==X00NR}a*mR7P9{VoNtVz}PTkNgp~+Ds=g=To zK!hf>geEjL%;Edyk8fwDwzg_&XJ@yzin`o_d(S=R4bStu?>#qCQ(cLglAe-;goIl8 z#dB>Ek_(a~B&1(1lY_sgdcUY8A^C?y`S}xF|IDqqAa4_UOB``w*85(JqMu;}uW`H! zF9ielWp(-Chpg)5I!l_F)ifQgPU&Ab7C&pg2x6qyxk)HwOyIxyDRF7+9o74>FK;iD zU-O{*Li;_E8ae-+yS$vwm{~dR#8#NzLAd5H?p}{j9>P}H+9gcRsr+O0VZXG{Xys~6 z7J}<$#;zCLwukdE@`(M?)P`65djQu;adj{4VAo-VS!d^iJ89 z>FMeB%VG<`UfiE9zQ{E*=UT_3!|9m7x(zP14Pfw-CHHz{P##_3_iDX3_t_mH&Cy|B~~*^z{or=|%s*4~Td%AG^)f>6Xb! zx$4Ks>=)b%iYIG(hjZU0)w%x)O6C7Ra`jDM41)Rz1=r)h4XgN;(21;dE0Qlt<4z_q zYxUo98C-+SG>Cha)P?o`ko=~`)9drRrJ>XCe_qkh<66N}`UP1DO1zf*!S<=9N z@pYiaX~XFCY_`E|gvrcTHwIwsy+;gy9y$|1Yf#=5`PG(+G~7cH1IQ64@I z)+`p&nBYgPP1BxTbY)yGd@M=&sn$hOE`!;bgl^>pKEi~PJVF&u8gSpu`wzGM&p1F$ zCjNe(?p}?Ywi-N&)Ph+H<$=#ppdcZ+OZVh|-(!jhhOBkzheuaT3IB!H0g6rJc8XCn zBqWb`jl7XJ1R8^RF$x9=wbq@O=s+2<@eL;`J^-1mUoZd15ty+5+f=1J$QqKp=)e${ z?0+wt4Dff#lIp@#G}A(f>pEb&flCXQpr=≤mYq}<+_a6{@@O#G0Bzq5o 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 X>I`rcvAzJ^Qxatb_2