【迷宫问题】
【算法1---堆栈回溯】
计算机解迷宫时,通常用的是"试探和回溯"的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续探索,直至所有可能的通路都探索到为止,如果所有可能的通路都试探过,还是不能走到终点,那就说明该迷宫不存在从起点到终点的通道。
1.从入口进入迷宫之后,不管在迷宫的哪一个位置上,都是先往东走,如果走得通...
分类:
其他好文 时间:
2014-05-22 13:25:23
阅读次数:
283
The Falling Leaves
Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by the falling leaves accumulating under the trees....
分类:
其他好文 时间:
2014-05-22 13:21:30
阅读次数:
286
通常,我们需要的功能更多的是通过展开某一个父节点同时展开所有的子节点(即:联动),但是有时候我们也需要展开某一个节点之上的所有父节点,直到当前节点,例如在删除某一个节点时,不想删除之后所有节点有折叠,这时候就需要这种功能。这样说可能不好理解,也可能是本人语言表达能力欠佳,我们来看一个图:...
分类:
其他好文 时间:
2014-05-22 13:06:37
阅读次数:
2025
剑指offer上的第24题,主要考察递归思想,九度OJ上AC。
题目描述:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
输入:
每个测试案例包括2行:
第一行为1个整数n(1<=n<=10000),表示数组的长度。
第二行包含n个整数,表示这个数组,数组中的数的范围是[0,100000000]。
输出:
对应每个测试案例,如果输入数组是某二叉搜索树的后序遍历的结果输出Yes,否则输出No。
样例输入:
7
5 7...
分类:
其他好文 时间:
2014-05-22 11:22:32
阅读次数:
229
完全按照海涛哥剑指offer里边的递归思路来写的,基本一样,仅作学习验证,努力锻炼,努力学习!code如下:
//Change a BSTree to a sorted double linklist
struct BSTreeNode
{
int value;
BSTreeNode *left;
BSTreeNode *right;
}head;
//Create a node of...
分类:
其他好文 时间:
2014-05-22 10:23:27
阅读次数:
237
一道笔试题,纸上写的,誊到电脑上并调试通过。没经验,摸索的野蛮做法,不知道有没有更简洁更抽象的算法。
是英文题,原题是不用buffer(缓存)反转字符串打印输出,受OJ的毒害,我就认为只要逆序打印就行了(要是把原字符串改了,我还真不知道怎么办到,尤其听说字符串常量不能被更改,在文章尾部会做验证)。
版本一:
用了一下递归,思路是用指针遍历字母,每碰到空格就用新指针往下递归调用...
分类:
其他好文 时间:
2014-05-22 10:12:28
阅读次数:
298
上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练!...
分类:
其他好文 时间:
2014-05-22 08:32:25
阅读次数:
270
问题描述
最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。不妨设
An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)
Sn=(...(A1+n)A2+n-1)A3+...+2)An+1
FJ想让奶牛们计算Sn,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。...
分类:
其他好文 时间:
2014-05-22 08:29:41
阅读次数:
278
正规文法的特性
1.所有长度有限的语言都是正规的。
2.用正规文法当然能产生无限长串,其中周期重复部分的长度不大于非终止符的长度。
举个例子
在此规则之下,能生成句子
其中周期重复部分为ab,这个例子的非终止符的元素个数为2,故满足2不大于2.
自嵌入特性
我们把上下文无关文法中的正规文法去掉,剩下的那部分我们叫做真正的上下文无关文法。
自嵌入特性是区分真正的上下文无...
分类:
其他好文 时间:
2014-05-22 08:07:19
阅读次数:
275
一、算法思想描述 归并排序:先递归分解序列,然后在合并有序序列。其过程描述如下:每次输出A、B这两个有序序列中的最小的一个。 二、算法分析 时间复杂度:最差、平均、最好的时间复杂度都是O(nlgn); 空间复杂度:O(n) 稳定性: 稳定三、算法实现 /*
* mergesort.cpp
*
* Created on: 2014年5月18日...
分类:
其他好文 时间:
2014-05-22 07:29:44
阅读次数:
250