240
笔下虽有千言,胸中实无一策
上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页
摘要: 题解 递归和迭代两种解法。 递归解法很直接。 class Solution { public: TreeNode* insertIntoBST(TreeNode* root, int val) { if(!root) return new TreeNode(val); if(val < root-> 阅读全文
posted @ 2020-08-20 07:42 CasperWin 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题解 典型的BFS模板套路。 class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> ret; if(!root) return ret; queue<TreeNode 阅读全文
posted @ 2020-08-19 05:09 CasperWin 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 题解 俯视角度下观察结果,我想到用root作为基准,令其序号为0,相应的,左节点在根节点基础上序号减一,而右节点加一。 用一个队列,自上而下逐层遍历。因为观察角度是从上往下,上层的节点会遮住同一列的下层所有节点。一边往下,一遍往左右两侧探索,遇到水平方向更远的节点都要保存到结果中。 void top 阅读全文
posted @ 2020-08-19 05:01 CasperWin 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题解 一道easy级别的题,不过适合用来练习BFS的模板套路。面对树结构,通常层级比较明显,如果是遇到图结构,有时则需要转化一下。 class Solution { public: int maxDepth(TreeNode* root) { if(!root) return 0; int dept 阅读全文
posted @ 2020-08-19 03:23 CasperWin 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题解 如果是刚做过 144. preorder traversal 的题,这道题不难延伸,虽然这是一道“hard”题。 postorder是“left ==> right ==> root”的遍历顺序,还是应用栈(stack)的数据结构,由于树的遍历必须是自上而下,也就是root必须在前面,不妨把问 阅读全文
posted @ 2020-08-18 04:26 CasperWin 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 题解 递归的方法很简单,重点是能不能熟练应用非递归的方法。通常根据条件,需要借助队列(queue)或者栈(stack)的结构。 preorder遍历的顺序是“root ==> left ==> right”,而树的遍历是从根节点(root)开始,所以考虑栈的数据结构,因为它实现数据的“先进后出”。 阅读全文
posted @ 2020-08-18 03:41 CasperWin 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 题解 非常典型的二叉树遍历的题,BFS做起来更顺手一些,DFS处理起来要稍稍注意些。 BFS class Solution { public: int deepestLeavesSum(TreeNode* root) { if(!root) return 0; queue<TreeNode*> q; 阅读全文
posted @ 2020-07-04 07:46 CasperWin 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题解 逆序链表,基本功之一。 用递归写起来很简单,但需要消耗大量栈空间,更推荐使用迭代的方法。通过画图找到变换关系。 // Original Linked List: ? --> p --> q --> r --> ? // Assume the elements before p have bee 阅读全文
posted @ 2020-07-04 06:57 CasperWin 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题解 这道题是Easy级别,算是BFS的典型题,适合用来找手感。 非常典型的套路是,用一个队列结构(queue)保存一层的信息,那么下一次迭代的时候,就可以通过队列先进先出的顺序,根据上一层的信息去操作。 class Solution { public: vector<vector<int>> le 阅读全文
posted @ 2020-07-03 04:44 CasperWin 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 题述 原题见链接。 题解 根据题意,很容易想到蛮力解法如下: Brute Force Method // Complete the arrayManipulation function below. long arrayManipulation(int n, vector<vector<int>> 阅读全文
posted @ 2020-07-03 04:10 CasperWin 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 这道题是被认为属于 Stack 范畴的题,但我一开始解题的时候,并没有察觉到 pop 操作的需要。我理解这里需要一个维护历史记录的数据结构,那么 vector 也就足够了。 下面是我的被 Accept 的解答: 讨论版上,主流的解答是用一个 stack 来进行维护历史记录,其中有些记录在操作过程中会 阅读全文
posted @ 2020-05-20 03:06 CasperWin 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 蛮力算法不难想出,穷举即可,但明显会超时。需要考虑如何避免多余计算。 可以用一个移动窗口,也就是用下标 i 和 j 框出一个子字符串,能包含所有 s1 中的字符,这个字符串通常是包含了其他字母的,如果没有,那么它的长度是和 s1 字符串一样的。 移动窗口方法,可以说在字符串匹配和查找问题中屡试不爽。 阅读全文
posted @ 2020-05-19 03:29 CasperWin 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 《三体》 刘慈欣 《囚徒健身》保罗·威德 《A Street Cat Bob》James Bowen 《房思琪的初恋乐园》林奕含 阅读全文
posted @ 2020-05-01 10:04 CasperWin 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 概率路线图(Probabilistic Roadmaps) 简介 概率路线图(PRM)是基于可用空间和占用空间的给定地图内可能路径的网络图。概率路线图法(PRM)将规划分为两个阶段:学习阶段和查询阶段。在学习阶段,建立一个路线图$Q_{free}$;在查询阶段,利用搜索算法在路线图上寻找路径。 一个 阅读全文
posted @ 2020-04-14 09:40 CasperWin 阅读(3778) 评论(0) 推荐(0) 编辑
摘要: 《如何阅读一本书》莫提默·艾德勒(读完) 阅读时间: 14天 推荐度: :star::star::star::star::star: 阅读本身是需要技巧的,一是筛选好的书,二是采取不同的阅读策略对待不同的书。第一个目标需要增加阅读量来达到,而第二个目标可以在本书中找到稍微系统的答案。 读后小结: 书 阅读全文
posted @ 2020-04-06 03:24 CasperWin 阅读(175) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页