package com.lhb.stack;
import java.util.Deque;
import java.util.LinkedList;
/**
* @author lhb
* @date 2022/3/12
*/
public class StackTest {
public static int stackTest01(int[] nums, int m) {
int len = 0;
Deque<Integer> stack = new LinkedList<>();
stack.push(nums[0]);
for (int i = 1; i < nums.length; i++) {
// 当前站不为空,当前m 》 0 、如果当前栈顶元素小于nums[i],则m--且弹出栈顶元素
while (!stack.isEmpty() && m > 0 && stack.peekLast() < nums[i]) {
stack.pollLast();
m--;
}
stack.offerLast(nums[i]);
}
// 当前的数是一个单调递减的数,需要判断m是否为0
while (m > 0) {
stack.pollLast();
m--;
}
while(!stack.isEmpty()) {
len = len * 10 + stack.pollFirst();
}
return len;
}
public static void main(String[] args) {
int[] nums = {9,8,7,6,5,4,3,2,1};
System.out.println(stackTest01(nums, 2));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步