校招面试数据结构与算法
每天刷几道算法题,准备校招
夜空Sora
这个作者很懒,什么都没留下…
展开
-
算法--栈的压入,弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。* 假设压入栈的所有数字均不相等。* 例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,* 但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)*** 思路:根据出栈序列去判断出入栈序列的操作顺序 借助一个栈来实现。下面直接看代码。import java.util.ArrayList;import java.util..原创 2020-05-27 15:37:50 · 229 阅读 · 0 评论 -
用两个栈实现一个队列,完成队列的push和pop操作
问题:用两个栈实现一个队列,完成队列的push和pop操作。队列中的元素均为int型。分析:首先相信大家都清楚队列和栈的特性,栈是先进后出,队列是先进先出。那么知道这个特性后就好办了。stack1来做进队列操作。stack2做出队列操作:首先判断stack2中有无元素,若有元素,直接弹出栈顶元素。若无元素,则从stack1中循环取出所有元素放进stack2,然后取出栈顶的元素。相当于stack1中的元素是正序进入,进入stack2中变成了倒序了。这样在stack2中取出的栈顶元素实技就是st原创 2020-05-23 22:01:47 · 1081 阅读 · 0 评论 -
递归---变态走楼梯(跳台阶进阶版)
/** * 案例 变态走楼梯 * 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。 * 求该青蛙跳上一个n级的台阶总共有多少种跳法。 *分析:走楼梯的进阶版,之前是每一步只能有2种走法,现在是每一步有n种走法。同样来寻找规律。 * 同样,n=1时,走法=1;n=2时,走法=2; * n=3时情况就和之前不同了 我们画图分析 * 假设有三级台阶,则可以一次走1级或一次走2级或一次走3级,如果一次走1级则还剩2级台阶,产生2种走法 * (上面已经说了),一次走2级则还剩1级只.原创 2020-05-22 15:19:57 · 676 阅读 · 0 评论 -
递归算法----走楼梯问题(跳台阶)
/** * 案例2 分治算法 走楼梯 * 一个台阶总共有n级,如果一次可以走1级,也可以一次走2级,求总共有多少种走法。 * 分析: * 如果只有1级台阶,则只有一种走法,如果有2级台阶,则有2种走法:一次走1级或一次走2级 * 假设有三级台阶,则可以一次走1级或一次走2级,如果一次走1级则还剩2级台阶,产生2种走法(上面已经说了), * 一次走2级则还剩1级只有一种走法,总共的走法就是2+1=3. * 3 * /\ *剩余级数 2 1.原创 2020-05-21 16:15:21 · 4449 阅读 · 0 评论