问题描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。算法分析
如果 root 等于 输入数,将root放在返回数组里返回;如果root大于输入数,返回空值;
如果root小于输入数,将root放在数组里,输入数自减root,一同随root的子树递归;
如果输入数为0了且左右子树都为空,即为叶子节点,则这...
分类:
其他好文 时间:
2015-09-19 06:16:08
阅读次数:
133
问题描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。背景知识:二叉搜索树(Binary Search Tree),又叫二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它...
分类:
其他好文 时间:
2015-09-19 06:14:07
阅读次数:
178
下面是牛客网剑指Offer编程题的一些解题报告,目前还没刷完,会一篇篇加上来。
跳台阶
变态跳台阶
矩形覆盖
重建二叉树
替换空格
用两个栈代替队列
斐波那契数列
二进制中 1 的个数...
分类:
其他好文 时间:
2015-09-18 10:27:41
阅读次数:
182
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路遍历字符串,遇到空格,就把空格后面的所有数后移两个位置;
空格处放’%’,空出来的两个位置放’2’,’0’代码实现class Solution {
public:
void replaceSpace(char *str,...
分类:
其他好文 时间:
2015-09-17 06:31:14
阅读次数:
168
问题描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。算法分析这个比较基础,懂斐波那契数列的意思就能写得出来了,不多说。需要注意的是,在牛客网上刷这题的时候不能用递归,递归会超时。代码实现class Solution10 {
public:
int Fibonacci(int n) {
if (n == 0){
retu...
分类:
其他好文 时间:
2015-09-17 01:15:21
阅读次数:
153
问题描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。算法分析:push:
1.将数据压入stack1;pop:
1.将stack1中所有数据弹出到stack2;
2.将stack2中第一个数弹出设置为返回值;
3.将stack2中所有数据弹出到stack1;
4.将返回值返回代码实现class Solution
{
public:
void...
分类:
其他好文 时间:
2015-09-17 01:13:24
阅读次数:
212
问题描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。算法分析:本题需要用到位运算当传进来一个正整数n时,假设n=3,二进制表示为 011
011&1 = 1 一个1, n右移1位
01&1 = 1 又一个1, n右移1位
共需移31次传进来一个负整数n,假设n = -2 二进制表示为
原码:10000000 00000000 00000000 00000010
反...
分类:
其他好文 时间:
2015-09-17 01:13:07
阅读次数:
266
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路输入的是前序遍历及中序遍历的结果,如示例:
前序 : 1 2 4 7 3 5 6 8
中序 : 4 7 2 1 5 3 8 6前序遍历的第一个数肯定为root,然后分别构建它的左右子树
在中序遍历里找到它的前一个数,若无,则左...
分类:
其他好文 时间:
2015-09-16 14:20:34
阅读次数:
188
问题描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。
请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,
总共有多少种方法?解题思路n=1 - 只有横放一个矩形一种解决办法
n=2 - 有横放一个矩形,竖放两个矩形两种解决办法
n=3 - n=2的基础上加1个横向,n=1的基础上加2个竖向
n=4 - n=3的基础上加1个横向,n=2的基础上加2个竖向
·
·
·...
分类:
其他好文 时间:
2015-09-16 06:26:10
阅读次数:
145
问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:每一次调用函数都是查找这个楼梯数有多少种跳法,如果楼梯数已为0,
则表明只有这一种跳法,也就是没有下一步的跳法了;
若不为0,则设这一步会跳1、2、3~n阶,然后将跳完这一步的
下一步跳法的跳法相加,返回结果。示例:
n=4
1 1 1 1
1 1 2...
分类:
其他好文 时间:
2015-09-16 06:25:53
阅读次数:
153