【Leetcode刷题】一月汇总篇

网友投稿 539 2022-05-29

学习总结

文章目录

学习总结

Task 01:链表(4 天)

第 01 天

第 02 天

第 03 天

第 04 天

Task 02:堆栈与深度优先搜索(5 天)

第 05 天

第 06 天

第 07 天

第 08 天

第 09 天

Task 03 单调栈(1 天)

第 10 天

Task 04:队列与广度优先搜索(3 天)

第 11 天

第 12 天

第 13 天

Task 05 优先队列(1 天)

第 14 天

学习总计划

Task 01:链表(4 天)

第 01 天

第 02 天

第 03 天

第 04 天

Task 02:堆栈与深度优先搜索(5 天)

第 05 天

第 06 天

第 07 天

第 08 天

第 09 天

Task 03 单调栈(1 天)

单调栈模板如下,首先下面版本的前提条件(可灵活改动)是找出nums数组中每个元素,对应的右边的第一个更大的元素值。我们利用一个辅助栈stack,从nums数组的最右边开始倒着遍历:

【Leetcode刷题】一月汇总篇

(1)每遍历到当前的元素A,将其和栈顶元素值比较大小,如果栈顶元素值小(矮子去掉)则pop掉,直到出现一个比A大的栈顶元素B;

(2)B即当前元素的res值。

(3)将A入栈,循环以上操作。

vector nextGreaterElement(vector& nums) { vector res(nums.size()); // 存放答案的数组 stack s; // 倒着往栈里放 for (int i = nums.size() - 1; i >= 0; i--) { // 判定个子高矮 while (!s.empty() && s.top() <= nums[i]) { // 矮个起开,反正也被挡着了。。。 s.pop(); } // nums[i] 身后的 next great number res[i] = s.empty() ? -1 : s.top(); // s.push(nums[i]); } return res; }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

第 10 天

Task 04:队列与广度优先搜索(3 天)

第 11 天

第 12 天

第 13 天

Task 05 优先队列(1 天)

第 14 天

学习总计划

AI 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:信息工程学院技能大赛 计算机程序设计(Java)大赛试题
下一篇:[华为云在线课程][Linux基础入门和帮助][第一章Linux登录和基本操作][学习笔记]
相关文章