- 博客(7)
- 收藏
- 关注
原创 九章算法第四课,BFS
69. 二叉树的层次遍历class Solution {public: vector<vector<int>> levelOrder(TreeNode * root) { vector<vector<int>> res; queue<TreeNode*> h; if (root==NULL) return...
2019-01-21 13:52:02 363
原创 九章算法第三课,二叉树与分治法
【背诵】二叉树的递归和非递归遍历方法97. 二叉树的最大深度maxDepth返回以当前root为根节点的树的最大深度,出口为叶子的下一层节点深度为0。class Solution {public: int maxDepth(TreeNode * root) { if (root==NULL) return 0; int left=maxDept...
2019-01-14 14:49:29 571
原创 九章算法第二课,二分法
14.二分查找注意是找第一个位置,所以当mid==target的时候,说明最终答案应该在此区间之前。循环终止的条件时(h+1<r),最后需要做一次double check。mid写作(t-h)/2+h是为了防止直接相加越界。class Solution {public: int binarySearch(vector<int> &nums, int t...
2019-01-06 21:10:37 705 1
原创 九章算法第一课,入门
17. 子集 https://www.lintcode.com/problem/subsets/descriptionclass Solution {public: vector<vector<int>> subsets(vector<int> &nums) { vector<vector<int>>...
2019-01-02 14:20:37 727
原创 337. House Robber III的C++解法(递归+dp)
题目描述:https://leetcode.com/problems/house-robber-iii/一开始被描述中的例子误导了,觉得应该只能打劫间隔的一层,所以写了一个层次遍历,计算每一层的和再决定怎么打劫。后来发现是不对的,因为可以打劫左子树而不打劫右子树,如树[2,7,1,null,4,null,8]对于二叉树中的某一个节点i,它也有偷与不偷这两个选项,若偷,则两个子节点不能偷;否...
2019-01-01 22:46:52 191
原创 213. House Robber II的C++解法(dp)
题目描述:https://leetcode.com/problems/house-robber-ii/在House Robber的基础上进行考虑,如果打劫第0间,就不能打劫第n间,相当于求解[0,n-1]的最大值;如果打劫第n间,就只能从第1间开始打劫,相当于求解[1,n]的最大值,最后比较这两个值哪个大即可。class Solution {public: int rob(ve...
2019-01-01 22:04:43 217
原创 198. House Robber的C++解法(dp)
题目描述:https://leetcode.com/problems/house-robber/ https://www.lintcode.com/problem/house-robber/description第i间房屋能打劫得到的最大金额有两种可能,1.不打劫,金额和i-1间房屋相同;2.打劫这一间,最大金额是这一间的钱和打劫到第i-2间能得到的最多...
2019-01-01 21:15:33 196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人