|
28 | 28 | <meta property="og:description" content="Hash 字母异位词 排序每一个单词,就知道是不是异位词。 两数之和 从数组中,找到nums[i] + nums[j] == target,并返回{ i, j }。 思路是双重循环,遍历每一个元素,求和是否为target。 然而,双重循环需要O(N2)O(N^2)O(N2)的复杂度。因此,可以使用一张表,使用containsKey方法识别是否存在当前i的target -"> |
29 | 29 | <meta property="og:locale" content="zh_CN"> |
30 | 30 | <meta property="article:published_time" content="2024-09-30T16:00:00.000Z"> |
31 | | -<meta property="article:modified_time" content="2024-10-27T11:07:58.821Z"> |
| 31 | +<meta property="article:modified_time" content="2024-11-05T03:27:07.647Z"> |
32 | 32 | <meta property="article:author" content="SIMULEITE"> |
33 | 33 | <meta property="article:tag" content="笔记"> |
34 | 34 | <meta name="twitter:card" content="summary"> |
|
138 | 138 | <div class="sidebar-panel-container"> |
139 | 139 | <!--noindex--> |
140 | 140 | <div class="post-toc-wrap sidebar-panel"> |
141 | | - <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#hash"><span class="nav-text"> Hash</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D"><span class="nav-text"> 字母异位词</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C"><span class="nav-text"> 两数之和</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3"><span class="nav-text"> 关键思想</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E9%95%BF%E8%BF%9E%E7%BB%AD%E5%BA%8F%E5%88%97"><span class="nav-text"> 最长连续序列</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3-2"><span class="nav-text"> 关键思想</span></a></li></ol></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#stack"><span class="nav-text"> Stack</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6"><span class="nav-text"> 每日温度</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3-3"><span class="nav-text"> 关键思想</span></a></li></ol></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#list"><span class="nav-text"> List</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%93%BE%E8%A1%A8%E6%8E%92%E5%BA%8F"><span class="nav-text"> 链表排序</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%88%A0%E9%99%A4%E5%80%92%E6%95%B0%E7%AC%ACn%E4%B8%AA%E8%8A%82%E7%82%B9"><span class="nav-text"> 删除倒数第N个节点</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#tree"><span class="nav-text"> Tree</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%AF%B9%E7%A7%B0%E6%A0%91"><span class="nav-text"> 对称树</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6"><span class="nav-text"> 最大深度</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E9%95%BF%E7%9B%B4%E5%BE%84"><span class="nav-text"> 最长直径</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8F%8D%E8%BD%AC%E4%BA%8C%E5%8F%89%E6%A0%91"><span class="nav-text"> 反转二叉树</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8F%8C%E6%8C%87%E9%92%88"><span class="nav-text"> 双指针</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E7%A7%BB%E5%8A%A80"><span class="nav-text"> 移动0</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92dp"><span class="nav-text"> 动态规划,DP</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84%E5%92%8C%E9%97%AE%E9%A2%98"><span class="nav-text"> 不同路径和问题</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%88%AC%E6%A5%BC%E6%A2%AF"><span class="nav-text"> 爬楼梯</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84ii"><span class="nav-text"> 不同路径II</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E5%A4%A7%E6%9C%80%E5%B0%8F%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98"><span class="nav-text"> 最大/最小不同路径问题</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%9B%B6%E9%92%B1%E5%85%91%E6%8D%A2"><span class="nav-text"> 零钱兑换</span></a></li></ol></li></ol></li></ol></div> |
| 141 | + <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#hash"><span class="nav-text"> Hash</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D"><span class="nav-text"> 字母异位词</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C"><span class="nav-text"> 两数之和</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3"><span class="nav-text"> 关键思想</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E9%95%BF%E8%BF%9E%E7%BB%AD%E5%BA%8F%E5%88%97"><span class="nav-text"> 最长连续序列</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3-2"><span class="nav-text"> 关键思想</span></a></li></ol></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#stack"><span class="nav-text"> Stack</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8D%95%E8%B0%83%E6%A0%88"><span class="nav-text"> 单调栈</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6"><span class="nav-text"> 每日温度</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3-3"><span class="nav-text"> 关键思想</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E4%B8%8B%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%A4%A7%E5%85%83%E7%B4%A0-i"><span class="nav-text"> 下一个更大元素 I</span></a></li></ol></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97"><span class="nav-text"> 栈实现队列</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%85%B3%E9%94%AE%E6%80%9D%E6%83%B3-4"><span class="nav-text"> 关键思想</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#list"><span class="nav-text"> List</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%93%BE%E8%A1%A8%E6%8E%92%E5%BA%8F"><span class="nav-text"> 链表排序</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%88%A0%E9%99%A4%E5%80%92%E6%95%B0%E7%AC%ACn%E4%B8%AA%E8%8A%82%E7%82%B9"><span class="nav-text"> 删除倒数第N个节点</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#tree"><span class="nav-text"> Tree</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%AF%B9%E7%A7%B0%E6%A0%91"><span class="nav-text"> 对称树</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6"><span class="nav-text"> 最大深度</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E9%95%BF%E7%9B%B4%E5%BE%84"><span class="nav-text"> 最长直径</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8F%8D%E8%BD%AC%E4%BA%8C%E5%8F%89%E6%A0%91"><span class="nav-text"> 反转二叉树</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8F%8C%E6%8C%87%E9%92%88"><span class="nav-text"> 双指针</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E7%A7%BB%E5%8A%A80"><span class="nav-text"> 移动0</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92dp"><span class="nav-text"> 动态规划,DP</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84%E5%92%8C%E9%97%AE%E9%A2%98"><span class="nav-text"> 不同路径和问题</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%88%AC%E6%A5%BC%E6%A2%AF"><span class="nav-text"> 爬楼梯</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84ii"><span class="nav-text"> 不同路径II</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9C%80%E5%A4%A7%E6%9C%80%E5%B0%8F%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98"><span class="nav-text"> 最大/最小不同路径问题</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%9B%B6%E9%92%B1%E5%85%91%E6%8D%A2"><span class="nav-text"> 零钱兑换</span></a></li></ol></li></ol></li></ol></div> |
142 | 142 | </div> |
143 | 143 | <!--/noindex--> |
144 | 144 |
|
@@ -231,7 +231,7 @@ <h1 class="post-title" itemprop="name headline"> |
231 | 231 | <i class="far fa-calendar-check"></i> |
232 | 232 | </span> |
233 | 233 | <span class="post-meta-item-text">更新于</span> |
234 | | - <time title="修改时间:2024-10-27 19:07:58" itemprop="dateModified" datetime="2024-10-27T19:07:58+08:00">2024-10-27</time> |
| 234 | + <time title="修改时间:2024-11-05 11:27:07" itemprop="dateModified" datetime="2024-11-05T11:27:07+08:00">2024-11-05</time> |
235 | 235 | </span> |
236 | 236 |
|
237 | 237 |
|
@@ -265,13 +265,20 @@ <h3 id="关键思想-2"><a class="markdownIt-Anchor" href="#关键思想-2"></a> |
265 | 265 | <p>去重;不处理中间值</p> |
266 | 266 | <span id="more"></span> |
267 | 267 | <h1 id="stack"><a class="markdownIt-Anchor" href="#stack"></a> Stack</h1> |
268 | | -<h2 id="每日温度"><a class="markdownIt-Anchor" href="#每日温度"></a> 每日温度</h2> |
| 268 | +<h1 id="单调栈"><a class="markdownIt-Anchor" href="#单调栈"></a> 单调栈</h1> |
| 269 | +<figure class="highlight java"><table><tr><td class="code"><pre><span class="line"><span class="keyword">for</span> (<span class="type">int</span> num: nums) {</span><br><span class="line"> <span class="comment">// 没找到更大数就呆在栈里;找到更大数的出栈并存入Map</span></span><br><span class="line"> <span class="keyword">while</span> (!stk.isEmpty() && num > stk.peek()) {</span><br><span class="line"> map.put(stk.peek(), num);</span><br><span class="line"> stk.pop();</span><br><span class="line"> }</span><br><span class="line"> stk.push(num);</span><br><span class="line">}</span><br></pre></td></tr></table></figure> |
| 270 | +<h3 id="每日温度"><a class="markdownIt-Anchor" href="#每日温度"></a> 每日温度</h3> |
269 | 271 | <p>给一个长度为N的每日温度数组,返回一个数组,记录每一天距离下次升温的天数。</p> |
270 | 272 | <p>可以用双重循环,找到比当前温度大的那一天,但是这样效率太低。</p> |
271 | 273 | <p>优化:<br /> |
272 | 274 | 使用栈,存取没有找到升温日的index,找到升温日后,一次性处理完,减少一重循环。</p> |
273 | | -<h3 id="关键思想-3"><a class="markdownIt-Anchor" href="#关键思想-3"></a> 关键思想</h3> |
| 275 | +<h4 id="关键思想-3"><a class="markdownIt-Anchor" href="#关键思想-3"></a> 关键思想</h4> |
274 | 276 | <p>使用栈存储未处理的值,找到升温日后一次性处理,减少重复动作。</p> |
| 277 | +<h3 id="下一个更大元素-i"><a class="markdownIt-Anchor" href="#下一个更大元素-i"></a> 下一个更大元素 I</h3> |
| 278 | +<p>num1为num2子集,所以只遍历num2,找到num2[i]右边的大数,存入Map;将Map结果去到num1即可。</p> |
| 279 | +<h1 id="栈实现队列"><a class="markdownIt-Anchor" href="#栈实现队列"></a> 栈实现队列</h1> |
| 280 | +<h2 id="关键思想-4"><a class="markdownIt-Anchor" href="#关键思想-4"></a> 关键思想</h2> |
| 281 | +<p>两个栈<code>in</code>和<code>out</code>,只有<code>out</code>为空时,才将<code>in</code>pop到<code>out</code>中。否则会出错。</p> |
275 | 282 | <h1 id="list"><a class="markdownIt-Anchor" href="#list"></a> List</h1> |
276 | 283 | <h2 id="链表排序"><a class="markdownIt-Anchor" href="#链表排序"></a> 链表排序</h2> |
277 | 284 | <p>链表的两种排序方法:插入排序和归并排序。<br /> |
|
0 commit comments