240
笔下虽有千言,胸中实无一策
摘要: "ros::NodeHandle"的用法 1. 自动启动和结束 ros::NodeHandle管理着一个内部引用数,使得开启和结束一个节点(node)可以简单地按照下面一行代码完成: ros::NodeHandle nh; 2. 命名空间(Nnamespaces) NodeHandles可以指定一个 阅读全文
posted @ 2021-07-20 05:35 CasperWin 阅读(5564) 评论(0) 推荐(0) 编辑
摘要: 题解 Medium 避免使用 erase ,复杂度较高。 class Solution { public: vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) { vector<ve 阅读全文
posted @ 2020-10-10 11:23 CasperWin 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 动态规划 nums[0 - i]的数组划分乘j份,这是我们要解决的问题。那么如果我们已经知道 nums[0 .. k] (k < i) 划分成 j-1 份的样子,那么这个问题是不是就好解决了。因为最后一份是确定的。所以,以这样的方式划分,最大的那份是 nums[0 - k] 划分 j 阅读全文
posted @ 2020-10-10 10:21 CasperWin 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题解 Medium 方法:动态规划 左边 k 个数连续求和,右边倒数 k 个数连续求和。然后,两个数组收尾相加,就是 k 次首、尾抽牌的所有组合。 class Solution { public: int maxScore(vector<int>& cardPoints, int k) { vect 阅读全文
posted @ 2020-10-10 09:25 CasperWin 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 方法一:Better Brute Force 思路是好理解的:从左往右遍历,在每一个位置,又从当前位置遍历到数组最后,同时更新 minheight * current_width . 这个方法还不足以通过,但是对后面的85题有启发意义。所以放在这里。 class Solution { 阅读全文
posted @ 2020-10-10 06:40 CasperWin 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 方法一:动态规划 取每个位置的最大高度 Maximum Height at Each Point 这道题与84题联系在一起看,完全可以转化成84题的样子。对于每一行,只看其以上的数组元素,把连续的值为1的格子累加起来,就变成 histogram 了。 那么,在每一个值为1的坐标位置上 阅读全文
posted @ 2020-10-10 05:21 CasperWin 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 动态规划 这道题是一道很具有代表性的二维动态规划问题,非常具有示范效应,理解了这道题的思路,能够举一反三。 一开始没有思路的时候,用一个小例子手动演算一下很有帮助。 Example: word1: abc, word2: abbc \0 a b b c \0 0 1 2 3 4 a 阅读全文
posted @ 2020-10-10 02:57 CasperWin 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard Sliding Window 事实证明,掌握套路还是很有用的。用 sliding window 模板套路解决这道题还是比较顺利的,虽然是一道 Hard 级别的题。当然,有一点冗余,可以精简一下。 class Solution { public: int lengthOfLongest 阅读全文
posted @ 2020-10-09 14:22 CasperWin 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 动态规划 这道题还确实挺难的,尤其是状态转移方程,不容易想到。 dp[i][j]: i位到j位的子数组能得到的最大值(或最多硬币值)。 这个问题可以继续分解乘子问题: | i | ... | k | ... | j | (k = i ... j) 考虑如果第k位是[i, j]中最后戳 阅读全文
posted @ 2020-10-09 13:52 CasperWin 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题解 Medium BFS Tree 是一种特殊的 Graph,节点之间只有一个方向。而这里有从 Target 节点向各个方向,包括父节点方向,遍历的需求。所以利用 Hashmap 先转化成一个无向图。 /** * Definition for a binary tree node. * struc 阅读全文
posted @ 2020-10-09 07:30 CasperWin 阅读(130) 评论(0) 推荐(0) 编辑
摘要: class Solution { public: int minKnightMoves(int x, int y) { int steps = 0; unordered_set<string> s; queue<pair<int, int>> q; q.push({0, 0}); s.insert( 阅读全文
posted @ 2020-10-09 07:03 CasperWin 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题解 Medium 动态规划 class Solution { public: bool wordBreak(string s, vector<string>& wordDict) { // a + b = s // as long as a true and b true, then s true 阅读全文
posted @ 2020-10-09 02:00 CasperWin 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题解 Medium Dynamic Programming 顺利做出来了。说明还是理解了coin的组合方式的。动态规划问题,很多都是排列组合问题的应用。 class Solution { public: int coinChange(vector<int>& coins, int amount) { 阅读全文
posted @ 2020-10-08 09:47 CasperWin 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题解 Easy Recursion class Solution { public: int rangeSumBST(TreeNode* root, int L, int R) { if(!root) return 0; if(root->val < L) return rangeSumBST(ro 阅读全文
posted @ 2020-10-08 08:45 CasperWin 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard Tree, DFS 时隔两年,再次把我难住。作为深度优先搜索或者递归的一道练习题,还是很有价值的。 基本上这道题,递归的变量,有两个,一个是结果,另一个是从当前节点往一个方向延伸的最大和,这个容易想到。但有几处细节容易忽略。 比如在求一侧的最大和的时候,要把加和为负值的支段剪掉,那么 阅读全文
posted @ 2020-10-08 08:42 CasperWin 阅读(114) 评论(0) 推荐(0) 编辑