2015年4月24日

OJ练习28——T118 Pascal's Triangle

摘要: 打印杨辉三角:[ [1], [1,1], [1,2,1], [1,3,3,1],[1,4,6,4,1]]输入打印的行数,返回vector >类型。【思路】1.我的思路是,先分配vector的空间,用resize,再用下标访问[i]。2.别人的思路,每行都是一个新vector cur,赋值后push_... 阅读全文

posted @ 2015-04-24 14:36 EmmaLi 阅读(92) 评论(0) 推荐(0) 编辑

OJ练习27——T112 Path Sum

摘要: 二叉树中是否存在一条路径(从根节点到叶节点)的和等于给定值。【思路】1.想到用栈深度遍历,不会实现。2.递归,每个节点自身的值,加上左子树或右子树等于给定值吗?【other code】bool PathSum(TreeNode *root,int sum,int val) { ... 阅读全文

posted @ 2015-04-24 10:16 EmmaLi 阅读(100) 评论(0) 推荐(0) 编辑

OJ练习26——T111 Minimum Depth of Binary Tree

摘要: 求从根节点到叶子节点的最短路径。【思路】开始想到返回左右子树最短深度,测试发现对于一个根节点带一个孩子节点,其最短路径是2,不是最小深度1,此种特殊情况单独列出。【my code】int minDepth(TreeNode *root) { if(root==NULL) ... 阅读全文

posted @ 2015-04-24 08:50 EmmaLi 阅读(89) 评论(0) 推荐(0) 编辑

2015年4月23日

OJ练习25——T110 Balanced Binary Tree

摘要: 判断一棵树是否是平衡树。平衡数的意思是,树左右子树高度之差不能超过1.【思路】递归判断每个子树是否是平衡数,需要调用高度计算的函数。【my code】bool isBalanced(TreeNode *root) { if(root==NULL) return t... 阅读全文

posted @ 2015-04-23 16:30 EmmaLi 阅读(106) 评论(0) 推荐(0) 编辑

2015年4月22日

OJ练习24——T104 Maximum Depth of Binary Tree

摘要: 求二叉树深度。【思路】很简单,二叉树经典。用递归求左树右树的深度,较大值加1即可。【other code】int maxDepth(TreeNode *root) { if(root==NULL) return 0; //if(maxDepth(ro... 阅读全文

posted @ 2015-04-22 22:04 EmmaLi 阅读(85) 评论(0) 推荐(0) 编辑

2015年4月21日

OJ练习23——T102 Binary Tree Level Order Traversal

摘要: 层次遍历二叉树,结果分行列出:[ [3], [9,20], [15,7]]【思路】层次遍历要用队列,还要有记录每层节点数的数组。记录层数是难点,要用每个节点来推算其下一层,看到remlostime的做法是自定义struct,带一个level信息,必须这样吗??【盲点】c++栈和队列头文件:#incl... 阅读全文

posted @ 2015-04-21 14:29 EmmaLi 阅读(98) 评论(0) 推荐(0) 编辑

OJ练习22——T101 Symmetric Tree

摘要: 判断一颗二叉树是否是镜面(即轴对称)。Leecode表示二叉树:{1,#,2,3}是层次遍历的结果,#表示节点为空。【思路】1.我的思路,镜面树一个特征,把左树的左右孩子都交换,就和右树完全一样。所以另写两个函数,都使用递归,一个是判断两树是否相等。2.别人的思路,用一个树的左树比较另一棵树的右树,... 阅读全文

posted @ 2015-04-21 10:22 EmmaLi 阅读(121) 评论(0) 推荐(0) 编辑

OJ练习21——T100 Same Tree

摘要: 遇到树了!终于看起来高大上一点了= =比较两棵二叉树,相等则返回true。【思路】递归,if(p->val==q->val&&isSameTree(p->left,q->left)&&isSameTree(p->right,q->right)) return true.注意还要考虑特殊情况。【my ... 阅读全文

posted @ 2015-04-21 09:02 EmmaLi 阅读(118) 评论(0) 推荐(0) 编辑

OJ练习20——T88 Merge sorted array

摘要: 把有序序列B合并到有序序列A中,A的大小大于m+n。特别的地方在于,不是返回一个新数组。【思路】可以开一个local数组,归并两串,再把结果赋给A。但不是很喜欢这种做法。(因为太简单了)插入排序是把当前元素插入到前面已经有序的m个元素中,与题目环境很符合。【other code】void merge... 阅读全文

posted @ 2015-04-21 08:49 EmmaLi 阅读(118) 评论(0) 推荐(0) 编辑

2015年4月17日

OJ练习19——T70 Climbing stairs

摘要: 以1阶或2阶上一个n阶楼梯。百度之,斐波那契数列,即每个数是其前两个数的和。知道上面这个规律,答案就非常非常简单了。【my code】int climbStairs(int n) { if(n==1) return 1; if(n==2) return 2; ... 阅读全文

posted @ 2015-04-17 16:21 EmmaLi 阅读(112) 评论(0) 推荐(0) 编辑

导航