- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 每天学习一算法系列(20)(输入一个表示整数的字符串,把该字符串转换成整数并输出)
题目: 输入一个表示整数的字符串,把该字符串转换成整数并输出。 例如输入字符串"345",则输出整数345。 思路一: 1.每扫描到一个字符,我们把在之前计算得到的值乘以10再加上当前字符表示的数字值,这个思路用循环不难实现。 2.由于整数字符串中可能不仅仅含有数字,还有可能以'+'或者'-'开头,表示整数的正负,如果第一个字符是'+'号,则不需要做任何操作;如果第一个字符是'-'
2011-07-22 13:50:19 3894
原创 每天学习一算法系列(19)(输入n,用最快的方法求该数列的第n 项)
题目: 定义Fibonacci 数列如下: f(n) = 0 (n=0) f(n) = 1 (n=1, 2) f(n) = f(n-1)+f(n-2) (n>2) 输入n,用最快的方法求该数列的第n 项。 思路一: 我相信很多程序员看到这道题都很容易想到用递归的方法解这个问题,但是,你知道的,这并不是最快的方法。还有一种方法就是用一个For(While)循环来遍历同样可
2011-07-22 11:30:22 3477
原创 每天学习一算法系列(18)(n 个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m 个数字)
题目: n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始,每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个 数字), 当一个数字删除后,从被删除数字的下一个继续删除第m 个数字。 求出在这个圆圈中剩下的最后一个数字。 该题目是以下题目的变形。 (n 个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下
2011-07-21 17:28:06 3401
原创 每天学习一算法系列(17)(在一个字符串中找到第一个只出现一次的字符)
题目: 在一个字符串中找到第一个只出现一次的字符,如输入abaccdeff,则输出b. (这道题是2006 年google 的一道笔试题) 思路一: 由于题目与字符出现的次数相关,我们可以统计每个字符在该字符串中出现的次数,要达到这样的目的的话那么我们可以利用Hash表来解这样的问题,用一个可以容纳所有的char的数组来作为容器,把相应的字符所对应的ASCLL码值作为下表进行映射,这
2011-07-21 11:24:24 1238
原创 每天学习一算法系列(16)(输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印)
题目:(微软) 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入: 8 / \ 6 10 / \ / \ 5 7 9 11 输出:8 6 10 5 7 9 11. 思路一: 这道题目其实就是二叉树的层次遍历的问题,借用队列来解。 具体思路是:从根节点开始,先把根节点入队列,然后一直往队列取出节点,并访问节
2011-07-20 16:53:19 2940
原创 每天学习一算法系列(15)(输入一颗二元查找树,将该树转换为它的镜像)
题目: 输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 /\ /\ 5 7 9 11 输出: 8 / \ 10 6 /\ /\ 11 9 7 5 定义二元查找树的结点为: struct BSTreeNode // a node in th
2011-07-20 11:25:21 1666
高质量C++编程指南
2008-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人