栈与队列
Leeli9316
这个作者很懒,什么都没留下…
展开
-
2022.04.10(LC_6039_K 次增加后的最大乘积)
方法:优先队列(使用小顶堆) class Solution { public int maximumProduct(int[] nums, int k) { PriorityQueue<Integer> pq = new PriorityQueue<>(); int mod = 1000000007; for (int num : nums) { pq.offer(num); }...原创 2022-04-10 16:43:14 · 141 阅读 · 0 评论 -
2022.04.03(LC_239_滑动窗口最大值)
方法一:优先队列 class Solution { public int[] maxSlidingWindow(int[] nums, int k) { //使用大顶堆,当两个元素值不同时,按值降序排列;值相同时,按下标降序排列 Queue<int[]> queue = new PriorityQueue<>((o1, o2) -> o1[0] != o2[0] ? o2[0] - o1[0] : o2[1] - o1[1]...原创 2022-04-03 21:14:42 · 214 阅读 · 0 评论 -
2022.04.03(LC_347_前 K 个高频元素)
方法一:哈希表 class Solution { public int[] topKFrequent(int[] nums, int k) { Map<Integer, Integer> map = new HashMap<>(); for (int num : nums) { map.put(num, map.getOrDefault(num, 0) + 1); } int ma..原创 2022-04-03 17:25:45 · 181 阅读 · 0 评论 -
2022.04.02(LC_150_逆波兰表达式求值)
方法:模拟 class Solution { public int evalRPN(String[] tokens) { Deque<Integer> stack = new LinkedList<>(); for (String token : tokens) { if ("+".equals(token)) { int num2 = stack.pop(); ...原创 2022-04-02 21:14:37 · 173 阅读 · 0 评论 -
2022.04.01(LC_1047_删除字符串中的所有相邻重复项)
方法一:Deque作为栈 class Solution { public String removeDuplicates(String s) { Deque<Character> stack = new LinkedList<>(); for (char ch : s.toCharArray()) { if (stack.isEmpty() || ch != stack.peek()) { ..原创 2022-04-01 11:33:11 · 104 阅读 · 0 评论 -
2022.04.01(LC_20_有效的括号)
方法:栈 class Solution { public boolean isValid(String s) { Map<Character, Character> map = new HashMap<>(); map.put(')', '('); map.put(']', '['); map.put('}', '{'); Deque<Character> stack = n...原创 2022-04-01 11:00:13 · 110 阅读 · 0 评论 -
2022.03.31(LC_225_用队列实现栈)
方法一:双队列 class MyStack { Queue<Integer> inQueue; //输入队列 Queue<Integer> outQueue; //输出队列 public MyStack() { inQueue = new LinkedList<>(); outQueue = new LinkedList<>(); } public void push(i..原创 2022-03-31 11:32:31 · 268 阅读 · 0 评论 -
2022.03.31(LC_232_用栈实现队列)
方法:双栈 class MyQueue { Deque<Integer> inStack; //输入栈,用于push操作 Deque<Integer> outStack; //输出栈,用于pop, peek操作 public MyQueue() { inStack = new LinkedList<>(); outStack = new LinkedList<>(); } ..原创 2022-03-31 11:27:11 · 120 阅读 · 0 评论