剑指offer
Tom Hardy
关注计算机视觉、机器学习、深度学习,公众号【3D视觉工坊】【计算机视觉工坊】
展开
-
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
题目介绍小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!题目分析这是一个典型的以某个数字点为起点,...原创 2019-07-05 12:45:33 · 968 阅读 · 0 评论 -
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为...
题目介绍给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...原创 2019-05-28 21:24:04 · 882 阅读 · 0 评论 -
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。题目分析这道题其实很简单,就是分析数组中是否有重复的数字,如果没有则是false,否则是true,如果有的话,需要输出一...原创 2019-05-17 19:53:19 · 3572 阅读 · 0 评论 -
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
题目介绍请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。题目分析这是一个典型的要借助递归的题目,循环判断同一层的对应位置元素值是否相同,详细思路见源代码。源代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *ri...原创 2019-05-21 20:28:59 · 506 阅读 · 0 评论 -
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
题目介绍求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。题目分析前面的限制条件,表明最好的方法是用递归的方法,但是需要做一个判断,从n到1,当小于1的时候,自动结束。源代码class Solution {public: int Sum_Solution(int n) { ...原创 2019-05-16 16:34:30 · 2208 阅读 · 2 评论 -
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5(非常简单明了)
题目介绍在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。题目分析这是一个典型的链表操作,基本思路为首先查询链表,碰到前后相同的,则跳过,直到不相同,接着依次赋值即可。源代码/*struct ListNode { ...原创 2019-05-21 11:32:47 · 1564 阅读 · 0 评论 -
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。(C++实现,非常简单明了)
题目介绍给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。题目分析这是一个典型的链表中查找环的问题,基本思路是,首先设置两个快慢指针slow和fast,并且快指针fast每次前进两步,慢指针slow每次前进一步,假定当相遇的时候,设慢指针在环中走了k步,设环之外的部分长为x,环的长度为c,则快指针一共走了:x+b1∗c+kx+b_1*c+kx+b1∗c+k步,(b...原创 2019-05-21 09:38:11 · 1221 阅读 · 4 评论 -
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,,,(C++实现)
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。题目分析这是一个典型的查找个数多于1的字符问题,而且是在插入过程中进行计算,string类型中提供了find()和erase操作,可以很方便的对字符进行查找和删除,详细内容请...原创 2019-05-21 08:58:16 · 1470 阅读 · 0 评论 -
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话(简单易懂)
题目介绍LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...原创 2019-05-15 16:45:07 · 3776 阅读 · 0 评论 -
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。
题目介绍地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?题目分析很典型的使用回溯法进行求解,并对矩...原创 2019-05-28 21:59:29 · 1803 阅读 · 0 评论 -
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目介绍在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目分析这是一个典型的从左到右,从上到下进行遍历的顺序,直到找到理想中的数字为止。源代码class Solution {public: bool Find(int target, vec...转载 2019-06-02 08:00:19 · 554 阅读 · 0 评论 -
请实现一个函数,将一个字符串中的每个空格替换成...
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目分析从后往前遍历字符串,遇到空格时,将后面所有字符往后移两步,并将空格替换为"%20",整体长度增加2,详细实现请见源代码。源代码class Solution {public: void replaceSpace(c...转载 2019-06-02 08:42:59 · 597 阅读 · 0 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
题目介绍输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题目分析这是一个简单的计算二进制中数字为1的个数,可以通过1和该二进制数的每一位进行与操作&来判断,C++中对与操作,有专用函数。详细思路请见源代码!源代码class Solution {public: int NumberOf1(int n) { if(n==0)...原创 2019-06-30 09:38:34 · 392 阅读 · 0 评论 -
手撕代码之快速排序算法(简单明了)
介绍快速排序算法是一个很受欢迎的不稳定排序算法,在数据完全无须的情况下,最容易发挥其长处,此时的时间复杂度为nlognnlognnlogn,当数据在完全有序的情况下,此时的时间复杂度为n2n^2n2,另外快速排序的空间复杂度也很高哦,为O(log2n)O({log_2}n)O(log2n)∼\sim∼O(n)O(n)O(n)之间,是除了基数排序中,空间复杂度最高的算法,这是典型的空间换时间的算...原创 2019-07-05 10:44:27 · 508 阅读 · 0 评论 -
牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。 但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。 牛牛希望你能帮他计算一共有,,,
题目描述牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。 但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。 牛牛希望你能帮他计算一共有多少个可能的数对。输入描述:输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。输出描述:对于每个测试用例, 输出一个正整数表示可能...原创 2019-07-09 20:37:40 · 4327 阅读 · 0 评论 -
小Q正在给一条长度为n的道路设计路灯安置方案。 为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用'.'表示, 不需要照亮的障碍物格子用'X'表示。
题目描述小Q正在给一条长度为n的道路设计路灯安置方案。为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用’.'表示, 不需要照亮的障碍物格子用’X’表示。小Q现在要在道路上设置一些路灯, 对于安置在pos位置的路灯, 这盏路灯可以照亮pos - 1, pos, pos + 1这三个位置。小Q希望能安置尽量少的路灯照亮所有’.'区域, 希望你能帮他计算一下最少需要多少盏路灯。输入描...转载 2019-07-09 19:35:20 · 1704 阅读 · 0 评论 -
中缀表达式转后缀表达式(非常简单易懂)
前言数据结构与算法中经常遇到中缀表达式转前缀表达式的题目,网上的教程大都很不直观,自己学的时候,也走了很多弯路,现在把一个简单易懂的算法教程分享出来。中缀转后缀举个例子,一个式子:(5+20+1∗3)/14(5+20+1*3)/14(5+20+1∗3)/14如何把该式子转换成后缀表达式呢?其实就是分三步:1、按运算符优先级对所有运算符和它的运算数加括号,(原本的括号不用加)2、把运算...原创 2019-06-25 20:08:17 · 20650 阅读 · 18 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
题目介绍输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题目分析二进制数据,可以采用与操作,在这里先讲一下n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10101(二进制),则(n-1) = 10100 ==>n&(n-1) = 10100,可以看到原本最低位为1的那位变为0。我们可以通过这种方式依次计算二进制...原创 2019-06-02 20:40:45 · 656 阅读 · 0 评论 -
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目介绍我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?题目分析这和青蛙跳台阶是一样性质的,基本思想是,刚起跳时,跳一次还是两次,这里你可以当作,第一次摆放时,横着摆放相当于跳一次台阶,竖着摆放相当于跳两次台阶。注意,这里的竖着摆放只对至少两个小矩形才有效,这里其实就是一种策略,第一次放是放一个还是两个矩形。因为这里...原创 2019-06-02 16:20:49 · 648 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
题目介绍用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题目分析这是一个典型的栈和队列相互转换的题目,注意,栈的性质是先进后出,队列的性质是先进先出,队列的push操作,可以使用一个栈来完成,队列的pop操作,需要把一个栈的数据转到另外一个栈上,然后只需要对另外一个栈,执行pop()操作即可,因为此时的栈顶即是第一个栈的栈定,看成队列的话,即是队列的出口处...原创 2019-06-02 14:47:37 · 1513 阅读 · 0 评论 -
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?题目分析这是一个很典型...原创 2019-05-15 15:16:04 · 1480 阅读 · 0 评论 -
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。
题目介绍汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!题目分析这是一个很简单的左移问题,自然就想到了队列,先进先出,然后左移的元素再加到队尾。详细内容...原创 2019-05-15 13:10:42 · 1444 阅读 · 0 评论 -
输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)
题目介绍输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)题目分析这个可以通过依次遍历的方法,采用递归来完成计算。源代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NUL...原创 2019-04-23 13:32:01 · 801 阅读 · 0 评论 -
在一个字符串中找到第一个只出现一次的字符,并返回它的位置
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。题目分析可以对字符串中的字符建立起一个map<char,int>,来统计每个字符出现的次数,当map建立完成之后,对字符串中的每个字符进行顺序遍历,查找map中其出现的次数,具体操作请见源代码。源代码clas...原创 2019-04-26 10:40:59 · 2619 阅读 · 0 评论 -
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
题目介绍输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。题目分析涉及到大数操作,一般采用字符串操作,这里只需要对所有拼接后的字符串进行大小比较即可,详细操作请见源代码。源代码class Solution {public: bool compare(co...原创 2019-04-25 21:38:13 · 1699 阅读 · 0 评论 -
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了
题目描述求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。题目分析这道题目其实很简单,对1到n中的每个数据进行遍历即可,遍历的时候需要...原创 2019-04-25 21:06:19 · 1070 阅读 · 0 评论 -
leetcode之前K个高频元素
题目介绍给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组...原创 2019-04-12 16:21:56 · 218 阅读 · 0 评论 -
leetcode之四数相加
题目介绍给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在−228-2^{28}−228~ 228−12^{28}-1228−1之间,最终结果不会超过 231−1...原创 2019-04-12 15:26:14 · 617 阅读 · 0 评论 -
leetcode之无重复字符的最长子串
题目介绍给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 ...原创 2019-04-12 14:41:30 · 135 阅读 · 0 评论 -
leetcode之杨辉三角
题目介绍给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]题目分析其实这个很简单,只需要建立起对应行数的vector,每个vector中的元素值是除了第一行外,两端...原创 2019-04-12 09:54:58 · 191 阅读 · 0 评论 -
六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目
题目介绍六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。输入描述第一行:n,表示h数组元素个数 第二行:n个h数组元...原创 2019-04-18 16:50:08 · 682 阅读 · 0 评论 -
操作给定的二叉树,将其变换为源二叉树的镜像。
题目介绍操作给定的二叉树,将其变换为源二叉树的镜像。输入描述源代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {pu...原创 2019-04-23 16:23:37 · 227 阅读 · 0 评论 -
01背包和动态规划
转载:背包九讲转载 2019-04-23 20:57:28 · 148 阅读 · 0 评论 -
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
题目介绍输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。题目分析这个题目很简单,依次遍历即可,而且需要有条件的提前终止搜索,降低时间复杂度,详细思路请见源代码源代码class Solution {public: vector<int> FindNumbersWithSum(vector&...原创 2019-05-15 12:31:37 · 461 阅读 · 0 评论 -
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!题目分析可以利用高低指针,低指针指向较小数...原创 2019-05-15 10:57:18 · 1421 阅读 · 0 评论 -
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字(简单易懂)
题目介绍一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。题目分析这种题目可以通过建立map来进行键和值的查找,以数字为key,以出现的次数为value。详细操作请见源代码。源代码class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num...原创 2019-05-15 09:00:29 · 1931 阅读 · 0 评论 -
统计一个数字在排序数组中出现的次数。
源代码class Solution {public: int GetNumberOfK(vector<int> data ,int k) { int num=0; for(int i=0;i<data.size();i++) { if(data[i]==k) {...原创 2019-05-08 22:02:17 · 423 阅读 · 0 评论 -
汉诺塔问题(非常简单明了的解析)
问题介绍汉诺塔是一个经典问题,如下图所示,考虑的是如何把A中的方块完全移动到C上,而且在移动的过程中可以借助B,但是要保证,总是小的圆块放到大的圆块上。网上关于这类问题已经有很多解析方案了,但是对初学者来说不够简单明了,这里会用图示的方法一步一步带你了解源代码#include<iostream>using namespace std;void move(int n, c...原创 2019-04-30 11:01:47 · 6603 阅读 · 6 评论 -
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
题目介绍从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路其实就是使用队列依次把树的数据压入,然后读取数据后再进行弹出。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NU...原创 2019-04-24 16:11:55 · 810 阅读 · 0 评论 -
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)题目分析这里有一个陷阱,栈的弹出序列不一定是栈的压入序列的倒序,因为有可能在压入的过...原创 2019-04-24 15:09:32 · 1492 阅读 · 0 评论
分享