当前位置:网站首页>单调栈-503. 下一个更大元素 II
单调栈-503. 下一个更大元素 II
2022-07-03 08:24:00 【later_rql】
1.解题思路
首先,确定本题的解题思路,题目要求记录每个数右边的大于该数的数值,实质就是向右找最近的一个大于当前数的值,而且题目说明该数组是循环数组。
确定使用单调栈来解决本题:
单调栈的使用场景:通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。
2.难点
本题稍加一点难度,就是将数组变成的循环数组,只需要对其做取余操作即可。
3.代码
public int[] nextGreaterElements(int[] nums) {
int len=nums.length;
int[] result=new int[nums.length];
for (int i=0;i<result.length;i++){
result[i]=-1;
}
Stack<Integer> stack = new Stack<>();
stack.push(0);
for (int i=1;i<len*2;i++){
while (!stack.isEmpty() && nums[(i%len)]>nums[stack.peek()]){
if (result[stack.peek()]==-1){
result[stack.peek()]=nums[i%len];
}
stack.pop();
}
stack.push(i%len);
}
return result;
}
4.性能
- 时间复杂度:O(n)
- 空间复杂度:O(n)
边栏推荐
- MXone Pro自适应2.0影视模板西瓜视频主题苹果cmsV10模板
- UE4 source code reading_ Bone model and animation system_ Animation node
- UE4 source code reading_ Bone model and animation system_ Animation process
- MAE
- Cesium service deployment, and import and display local 3dfiles data
- Gradle's method of dynamically modifying APK package name
- Xlua task list youyou
- KunlunBase MeetUP 等您来!
- matlab神經網絡所有傳遞函數(激活函數)公式詳解
- 简易入手《SOM神经网络》的本质与原理
猜你喜欢
UE4 source code reading_ Bone model and animation system_ Animation node
Osgearth target selection
OpenGL learning notes
Visual Studio (VS) shortcut keys
Youyou1 of xlua knapsack system
Redis data structure
Unity learning notes
二进制转十进制,十进制转二进制
matlab神經網絡所有傳遞函數(激活函數)公式詳解
Image processing 8-cnn image classification
随机推荐
animation
Clion toolchains are not configured configure disable profile problem solving
Unity editor expansion - draw lines
Conversion between golang JSON format and structure
Osgearth target selection
Youyou1 of xlua knapsack system
Haproxy+kept build 01
Explain sizeof, strlen, pointer, array and other combination questions in detail
Intersectionpicker in osgearth
Basic operation and process control
Unity Editor Extension - Outline
Exe file running window embedding QT window
二进制转十进制,十进制转二进制
Get to know unity2 for the first time
Unity interactive water ripple post-treatment
P1596 [USACO10OCT]Lake Counting S
C language - Introduction - essence Edition - take you into programming (I)
100 GIS practical application cases (78) - Multi compliance database design and data warehousing
Osgearth north arrow display
Introduction to hexadecimal coding