- 博客(4)
- 收藏
- 关注
原创 《程序员代码面试指南》——由两个栈组成的队列(Java实现)
题目: 用两个栈实现队列,支持队列的add、poll、peek操作 思路: 两个栈,一个用于每次向里面添加元素,另一个用于弹出元素,弹出规则是:若栈不为空,则直接弹出;若为空,则将第一个栈的所有元素都移动到这个栈,再弹出/输出栈顶元素。进而实现用两个栈的先进后出来模拟队列的先进先出 Java实现: import java.util.Stack; public clas...
2018-11-06 14:24:12 125
原创 《程序员代码面试指南》——设计一个有getMin功能的栈(Java实现)
题目: 设计一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作 要求: pop、push、getMin操作的时间复杂度都是O(1) 思路:用两个栈,一个做正常的pop、push操作,另一个辅助栈用于存放每次操作后的最小值 Java实现: import java.util.Stack; public class Main { public ...
2018-11-06 13:54:30 151
原创 快速排序
思路: 快速排序到关键在于先在数组中选择一个数字,接下来将比选择的数字小的数字移到数组的左边,比选择的数字大的数字移到数组的右边 C++实现: #include<iostream> #include<vector> using namespace std; void helper(vector<int>& vec,int left,...
2018-11-01 12:24:46 119
原创 用两个栈实现队列
题目要求: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 栈先进后出、队列先进先出;用两个栈sta1、sta2,每次push元素都放到sta1中;每次pop元素,先判断sta2是否为空,若为空,则将sta1里都元素全部移动到sta2中,在pop sta2中到元素;若sta2不为空,则直接pop sta2中到元素。(可以自...
2018-11-01 12:08:50 85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人