当前位置:网站首页>break algorithm---刷题map
break algorithm---刷题map
2022-07-07 23:26:00 【killingwill】
资源参考:
LeetCode
中文版:https://leetcode-cn.com/problemset/all/
英文版:https://leetcode.com/problemset/all/
相关代码实现 – python语言:
https://github.com/muxintong/break-algorithm/
LeetCode题解总结
https://github.com/labuladong/fucking-algorithm
https://labuladong.gitee.io/algo/
https://grandyang.com/leetcode/1147/
Python3文档
https://docs.python.org/3/
数据结构
https://www.runoob.com/data-structures/
Problem Solving with Algorithms and Data Structures using Python
https://runestone.academy/runestone/books/published/pythonds/index.html
一.单调栈 |
1.1 单调栈介绍
单调栈:
- 定义:栈内元素单调递增或者单调递减的栈,单调栈只能在栈顶操作。
单调栈 = 单调 + 栈,因此其同时满足两个特性: 单调性、栈的特点。
单调性: 单调栈里面所存放的数据是有序的(单调递增或递减)。
栈: 后进先出。 - 实现:单调栈里的元素具有单调性,元素加入栈前,会在栈顶端把破坏栈单调性的元素都删除。
单调递减栈:找到从左起第一个比当前元素大的元素
stack<int> st;
for (遍历这个数组)
{
if (栈空 || 栈顶元素大于等于当前比较元素)
{
入栈;
}
else
{
while (栈不为空 && 栈顶元素小于当前元素)
{
栈顶元素出栈;
更新结果;
}
当前数据入栈;
}
}
上述代码优化合并:
stack<int> st;
for(遍历数组){
while(当前元素 > 栈顶元素 && 栈非空){
弹栈;//catch it!找到了从左起第一个比当前元素大的元素!
更新结果集;
}
当前元素入栈;
}
单调递增栈:找到从左起第一个比当前元素小的元素
stack<int> st;
for(int i=0; i<arr.length; i++){
while(当前元素 < 栈顶元素 && 栈非空){
弹栈;//catch it!找到了从左起第一个比当前元素小的元素!
更新结果集;
}
当前元素入栈;
}
- 时间复杂度:O(n)
线性,每个元素遍历一次。
因其满足单调性和每个数字只会入栈一次,并且出栈后再也不会进栈了,所以可以在时间复杂度 O(n) 的情况下解决一些问题。 - 应用:
- 单调递增栈可以找到左起第一个比当前数字小的元素
- 单调递减栈可以找到左起第一个比当前数字大的元素
边栏推荐
- 7. Regularization application
- 1. Linear regression
- Guojingxin center "APEC education +" Shanghai Jiaotong University Japan Cooperation Center x Fudan philosophy class "Zhe Yi" 2022 New Year greetings
- Two methods for full screen adaptation of background pictures, background size: cover; Or (background size: 100% 100%;)
- Redis 主从复制
- Apt get error
- 2022 safety officer-b certificate examination question bank and safety officer-b certificate simulation test questions
- 130. 被圍繞的區域
- Complete model training routine
- Guojingxin center "friendship and righteousness" - the meta universe based on friendship and friendship, and the parallel of "honguniverse"
猜你喜欢
1. Linear regression
Definition and classification of energy
redis的持久化方式-RDB和AOF 两种持久化机制
[loss function] entropy / relative entropy / cross entropy
Generic configuration legend
Redis集群
How to transfer Netease cloud music /qq music to Apple Music
2021 tea master (primary) examination materials and tea master (primary) simulation test questions
The Ministry of housing and urban rural development officially issued the technical standard for urban information model (CIM) basic platform, which will be implemented from June 1
4. Strategic Learning
随机推荐
2021-03-06 - play with the application of reflection in the framework
2. Nonlinear regression
Common effects of line chart
USB type-C docking design | design USB type-C docking scheme | USB type-C docking circuit reference
2022 operation certificate examination for main principals of hazardous chemical business units and main principals of hazardous chemical business units
Su embedded training - Day6
Su embedded training - Day8
Smart grid overview
2022 safety officer-b certificate examination question bank and safety officer-b certificate simulation test questions
Saving and reading of network model
Running OFDM in gnuradio_ RX error: gr:: Log: info: packet_ headerparser_ b0 - Detected an invalid packet at item ××
The communication clock (electronic time-frequency or electronic time-frequency auxiliary device) writes something casually
Leetcode notes No.21
FIR filter of IQ signal after AD phase discrimination
Common operations of numpy on two-dimensional array
10. CNN applied to handwritten digit recognition
For the first time in China, three Tsinghua Yaoban undergraduates won the stoc best student thesis award
2022 safety officer-c certificate examination summary and safety officer-c certificate reexamination examination
How to transfer Netease cloud music /qq music to Apple Music
Generic configuration legend