摘要:
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文
posted @ 2020-06-14 20:35
Stephen~Jixing
阅读(119)
评论(0)
推荐(0)
摘要:
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。 构建两个栈 st 、 min_st st保存所有的元素,按照进栈出栈的顺序 min_st只保存栈 阅读全文
posted @ 2020-06-14 15:57
Stephen~Jixing
阅读(150)
评论(0)
推荐(0)
摘要:
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路:每次打印都是 阅读全文
posted @ 2020-06-14 15:45
Stephen~Jixing
阅读(172)
评论(0)
推荐(0)
摘要:
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 自写一个isSubtree函数,用来判断当前以及递归判断子树,在此函数中,如果头的值匹配,那么再往下匹配,如果开始就不匹配,就不用往下了 首先判断pRoot1和pRoot2头开始 然后再判断pRoo 阅读全文
posted @ 2020-06-14 15:21
Stephen~Jixing
阅读(157)
评论(0)
推荐(0)
摘要:
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 递归实现,比较当前值,构建当前节点 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), n 阅读全文
posted @ 2020-06-14 15:17
Stephen~Jixing
阅读(72)
评论(0)
推荐(0)
摘要:
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 解: 浮点数的次方也是拿着移位运算 cur=底数 指数按位&1 ?乘:不乘 cur乘倍 指数右移位 另外判断一下指数exponent的正 阅读全文
posted @ 2020-06-14 11:14
Stephen~Jixing
阅读(115)
评论(0)
推荐(0)
摘要:
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 开始看到负数用补码表示,还想着怎么转换负数,其实计算机已经将负数转换成补码了 拿着一通算就完事 代码中,用无符号的1作为标志来与运算& 每次都往左移位1 flag如果超过int范围,会归0 考虑到边界值,flag就移位到退出 阅读全文
posted @ 2020-06-14 11:09
Stephen~Jixing
阅读(96)
评论(0)
推荐(0)
摘要:
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: f(n)=f(n-1)+f(n-2) 推广:如果是3*1的格子:f(n)=f(n-1)+f(n-3) 如果是k*1 阅读全文
posted @ 2020-06-14 11:03
Stephen~Jixing
阅读(114)
评论(0)
推荐(0)
摘要:
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 跳上n级台阶的跳法等于跳上n-1台阶的跳法+n-2台阶的跳法,斐波拉契数列 f(1)=1 f(2)=2 class Solution { public: /* 斐波拉契数 阅读全文
posted @ 2020-06-14 10:52
Stephen~Jixing
阅读(214)
评论(0)
推荐(0)
摘要:
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 通过前序的第一个点,对中序切分->左半边和右半边,然 阅读全文
posted @ 2020-06-14 10:42
Stephen~Jixing
阅读(141)
评论(0)
推荐(0)
摘要:
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 先反转链表,再存入vector 注意链表->next的时候,都判断下此时是否为空,不然很容易越界 /** * struct ListNode { * int val; * struct ListNode *next; * Li 阅读全文
posted @ 2020-06-14 10:33
Stephen~Jixing
阅读(147)
评论(0)
推荐(0)
摘要:
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路: 一个空格替换成‘%’+‘20’,也就是一个字符位替换为两个字符位,所以先统计空格数,计算替换完成后的字符串总长度为多少。 阅读全文
posted @ 2020-06-14 10:27
Stephen~Jixing
阅读(242)
评论(0)
推荐(0)

浙公网安备 33010602011771号