程序员代码面试指南
文章平均质量分 53
Kasuga96
这个作者很懒,什么都没留下…
展开
-
程序员代码面试指南 - CD7 用递归函数和栈逆序一个栈
CD7思路要求用递归实现,所以只能用一个栈,不能再双栈实现逆序了。回顾下递归函数的三要素,第一要素:明确你这个函数想要干什么;第二要素:寻找递归结束条件;第三要素:找出函数的等价关系式,即不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。对于递归有没有什么好的理解方法?对于该题,首先可想到通过越来越小的栈来转置(递归函数之一),但是为了实际操作,需要再写一个递归函数,目的是返回并移除栈底元素。返回并移除栈底元素的函数思想结束条件:pop之后栈.原创 2022-01-04 01:39:16 · 3599 阅读 · 0 评论 -
程序员代码面试指南 - CD6 由两个栈组成的队列
思路栈的特点:先进后出,队列的特点:先进先出。因此可想到用两个栈,其中一个正序存储,另一个逆序存储,以此实现队列的特点。使用两个栈,入队栈stackPush和出队栈stackPop;入队使用入队栈,出队使用出队栈;但要注意两点: 1. 转移元素前出队栈为空 2. 转移元素后入队栈为空。否则结果将出错。import java.util.Stack;import java.util.Scanner;class MyQueue { private Stack<Int原创 2022-01-03 21:22:53 · 3676 阅读 · 0 评论 -
程序员代码面试指南 - CD5 设计getMin功能的栈
链接思路1设计两个栈,一个栈stackData负责存取原始数据,另一个栈stackMin负责存取最小数来实现getMin功能。1)push规则:假设当前数据为newNum,先将其压入stackData,然后判断和stackMin的栈顶元素哪一个更小,若newNum小于等于,则也将其压入stackMin,否则stackMin不压入元素。若stackMin为空,newNum也压入stackMin。2)pop规则:先从stackData中弹出栈顶元素,然后判断这个弹出值和stackMin的栈.原创 2022-01-03 17:28:51 · 3282 阅读 · 1 评论