![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法刷题
leecode+牛客
magisuCoder
这个用户很懒
展开
-
剑指offer-从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路 用队列存储节点,从根节点开始,入队,随后左右孩子入队,把头部元素出队,写入一个list中 import java.util.ArrayList;//Java中ArrayList就是用队列实现的 public class Solution { public ArrayList<Integer...原创 2020-03-20 23:54:34 · 87 阅读 · 0 评论 -
Leecode-求数组中的第K大的数
题目描述 求一个数组中第大的数。 思路 (1)对数组A进行排序,然后遍历一遍就可以找到第K大的数字。该方法的时间复杂度为O(N*logN)。 (2)利用简单选择排序法的思想,每次通过比较选出最大的数字来,比较上K次就能找出第K大的数字来。该方法的时间复杂度为O(N*K),最坏情况下为O(N^2)。 (3)构建最小堆的时间复杂度为nlog(k) 1、设置一个k大小的最小...原创 2020-02-12 18:10:01 · 373 阅读 · 0 评论 -
Poj1636-合法的出栈序列
题目描述 思路 1、将序列入栈,再依次弹出栈顶元素,与原序列比较。 2、当队列的front和栈顶相同,弹出队列和栈元素 3、若栈最后为空,则是一个栈序列,否则不是,返回false。 代码 import java.util.Stack; public class Solution { public boolean IsPopOrder(int [] pus...原创 2020-02-12 15:55:55 · 428 阅读 · 0 评论 -
Leecode-最小栈
题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 思路 1、一个变量无法记录栈中的最小值,用最小值栈helper记录。 2、每次stack1进栈时与最小值栈比较,若小,则将更小的值...原创 2020-02-12 14:04:34 · 103 阅读 · 0 评论 -
LeetCode-两个栈实现一个队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 思路 1、一个栈存放进入的元素 2、另外一个栈,删除元素,如果没有元素,则把上一个栈的元素入栈后删除元素 代码 package com.codinginterviews; import java.util.Stack; /** * 两个栈实现队列 -- 剑指Offer 5 * * 思路: * 添加...原创 2020-02-11 22:51:39 · 203 阅读 · 0 评论 -
LeetCode-用两个队列实现栈
题目描述 用两个队列实现栈 思路 1.设置一个临时队列tempQuene,每次将Q中n-1个元素出队列到tempQuene中,出队列; 2.交换tempQuene和Q。 代码 import java.util.Deque; import java.util.LinkedList; import java.util.NoSuchElementException; class Solu...原创 2020-02-11 22:41:24 · 160 阅读 · 0 评论