-
leetcode 105 根据前序遍历和中序遍历重构二叉树
Mar 11, 2017 · 2 min read思路: 分治搞之。 实际上两个vector就够了。。。4个会MLE(在leetcode上。。。 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* res; TreeNode* reConstructBinaryTree(vector<int> …
Read More -
题目链接 题意:给一个二维数组。。。每一行每一列都分别递增。。问某个value是否出现过。。。 思路:单调。。显然二分。。。唯一的技巧是从右上角开始搜。 /* *********************************************** Author :111qqz Created Time :2017年03月09日 星期四 19时03分07秒 File Name :74.cpp ************************************************ */ class Solution { public: bool …
Read More -
阿里一面.
Mar 5, 2017 · 1 min read一开始是晚上七点半,直接一个电话过来就开始面试》。。 窝说不方便,又约了周末下午或者晚上,然后周六上午来了电话....。。。。于是又约了周天下午。。。 然后窝从两点开始等。。。等到六点半。。。决定去教室写报告。。。然后刚到教室电话就来了orz... 先是常规的简单自我介绍。。 然后先是问了一些cpp的问题。。 问了一些cpp的问题: 先是问了c和cppneicu内存的区别。。。我:????? 内存区别什么鬼。。 然后就回答了malloc,free,delete,new的区别。。。好像就是这个问题。。。 第二个问题是什么时候会内存泄露。。 我说申请了内存没释放blablabla... 第三个问题是cpp哪些函数不能为虚函数: 我说构造 …
Read More -
啊。。。虽然结果还没出来。。。不过回想发现有些细节已经有些记不清了。。。 所以打算先记录一下? 就算过不了。。。也算是积累一些经验。 一面: 先是简单自我介绍。。。 然后问了2-sum...?(。。。我之前真不知道这是套路题。。。花了较长时间。。。被面试官姐姐(or适牛?)吐槽不够smartQAQ 姐姐表示没听过。。我说就是two-pointer...之后要求我实现一下尺取做法的代码。。。 有点久没写尺取竟然写残了。。。?面试官姐姐看了之后说。。。你的two pointer 怎么head和tail都在一端啊。。。不应该在两端吗。。。我表示喵喵喵喵喵? 我写了好多尺取都是在一端。。。不过这倒是提醒了我。。。改对了代码。。。一头一 …
Read More -
题目链接 题意:求一棵二叉树中,所有一段连续路径之和等于给定值的路径数目。 思路:想了半天就只能想到暴力。。。复杂度大概O(n^2)。。。也不是不可以接受。。。但是感觉这也太暴力了。。就去看了题解。。。发现题解就还真是暴力orz。。。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { //思路:枚举每个起 …
Read More -
leetcode 101. Symmetric Tree Add to List(二叉树,判断镜像)
Feb 24, 2017 · 1 min read题目链接 题意:判断一棵二叉树是否是自己的镜像。做法是做个copy,相当于两棵树做比较。注意逻辑不要漏掉就好 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool leaf(TreeNode* root) { if …
Read More -
leetcode 110. Balanced Binary Tree
Feb 24, 2017 · 1 min read题目链接 题意:判断一颗二叉树是否平衡.... 思路:直接搞就好了。。。神TM又忘记dfs的时候忘记返回子调用的值。。。。我这是药丸啊。。。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { //错误原因:左右子树都平衡的树未必平衡!!!! public: bool leaf(TreeNode* root) …
Read More -
题目链接 题意:求一个BST中某两个节点LCA.... 思路:卧槽。。。竟然求LCA...直接想到的显然是Tarjan的方法或者。。。RMQ+DFS。。。但是感觉。。。leetcode怎么可能考算法。。。。于是想到。。。可以从BST下手。。。 两个节点的LCA的值一定在这两个节点之间。 可以根据这个条件做二分。。。 这道题的收获是。。。不要被已知的东西限制住思路。。。tarjan或者RMQ+DFS显然也能做。。。但是那样的相当于没有用到BST的条件。。。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; …
Read More -
leetcode 226. Invert Binary Tree(反转二叉树)
Feb 22, 2017 · 1 min read题目链接 题意:反转一棵二叉树。。。字面意思理解即可。。就是把每一棵子树的左右孩子交换。。。 思路:直接照着题意做就好了。。。没有坑。。记录的原因是听说这题比较经典(虽然毫无难度... /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool leaf(TreeNode* root) { if …
Read More -
题目链接 题意:给一棵树。。问是否存在一条从树根到叶子的路径,使得路径上每个点的val之和等于给定的sum。 思路:。。。直接搞就好。。。由于是比较经典的题目所以记录一下。。。注意递归的时候每一部分都要返回值orz..(我是多久没写代码了。。。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: …
Read More