【算法编程】
RiweiChen
talk is cheap, show me the code
展开
-
【算法编程】求二叉树的深度-Maximu Depth of Binary Tree
题目大意:很简单,只需要找出一颗二叉树的最大深度即可,貌似没有时间和空间的要求。求解方法:更简单,只需要按照宽度优先的方法去查找即可,在这里我用a队列保存待扩展的节点,用b来保存a扩展出来的节点,再利用t中间变量来交换a和b,直到a列队为空时,结束。 注意边界条件,root=NULL时,应该返回0原创 2015-07-03 18:18:15 · 2201 阅读 · 0 评论 -
【算法编程】找出只出现一次的数-singleNumber
题目意思:一个数值数组中,大部分的数值出现两次,只有一个数值只出现过一次,求编程求出该数字。 要求,时间复杂度为线性,空间复杂度为O(1).解题思路:1.先排序,后查找。由于排序的最快时间是O(nlogn), 所以这种方法不能满足时间的要求。2.其它技巧来解决:根据基本的计算机组成原理的知识,采用”异或运算“来巧妙的完成,异或运算很简单:0^0=0 1^1=0 1^0=0^1=1也就是说相同则原创 2015-07-02 22:07:06 · 1669 阅读 · 0 评论 -
【算法编程】括号表达式问题
有如下规定1,()是个合法表达式。2,如果S是合法表达式,则(S)也是个合法表达式。3,如果A和B都是合法表达式,则AB也是合法表达式。4,其他的表达式都不是合法表达式给你一个包含“(”和“)”的表达式,中间可能有多个合法表达式(只对满足规定的最长表达式进行计数,如“(())”和“()()” 都只算一个,不是两个),那这些合法表达式有多少个呢?★数据输入输入为一个长度不超过1000的包含“(”和“)”的非空字符串。★数据输出输出合法表达式的个数。输入示例()(()(()(()输出示例4原创 2011-04-04 21:08:00 · 1948 阅读 · 0 评论