自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 从零开始学习cartographer源码 | 02.cartographer_ros—node_main.cc

在ros中使用cartographer,离不开2个功能包,一个是cartographer,另一个是cartographer_ros,cartographer_ros是cartographer适配ros的rosnode,cartographer是cartographer_ros的库文件。

2024-07-19 13:28:56 397

原创 从零开始学习cartographer源码 | 番外:如何在wsl内使用clion阅读cartographer源码

笔者在安装的时候遇到报错找不到Sphinx,查了一下是一个文档生成的工具,我安装后也无法加载到clion的环境变量内,不装它也不影响我们正常学习cartographer源码。同样的安装步骤笔者笔记本电脑安装毫无问题,从win10升级的win11就无法使用GUI的应用程序,笔者翻遍了CSDN,GitHub都没有解决。参考Windows官方文档安装wsl2,建议安装wsl2,wsl2默认支持wslg,支持ros的各种可视化工具,如rqt,Rviz等。,注意将下面的用户名替换成你自己的用户名。

2024-07-14 15:43:36 2251 1

原创 从零开始学习cartographer源码 | 01.gflags与glog

gflags(Google Flags)是一个用于处理命令行标志的库,主要由Google开发,广泛应用于C++和Python项目中。它提供了一种简洁而强大的方式来定义、解析和使用命令行标志(flags)。Google Logging(glog)是一个由Google开发的C++日志库,提供了一种简单而强大的方式来记录程序的运行信息。glog支持四种日志级别(INFO、WARNING、ERROR和FATAL),可以方便地记录各种类型的日志信息。

2024-07-12 18:22:06 1857

原创 代码随想录算法训练营第六十五天|KM99. 岛屿数量——深搜、KM99. 岛屿数量——广搜、KM100. 岛屿的最大面积

使用递归深度搜索,将每次遇到的岛屿上下左右记录为已经到过,如果遇到没到过的说明它上下左右不是之间遍历过的岛屿,结果计数+1。最后统计计数即可知道有多少个岛屿intbool。

2024-06-24 22:21:19 421

原创 代码随想录算法训练营第六十四天|图论、KM98. 所有可达路径

【代码】代码随想录算法训练营第六十四天|图论、KM98. 所有可达路径。

2024-06-21 16:39:53 160

原创 代码随想录算法训练营第六十三天|42. 接雨水、84. 柱状图中最大的矩形

【代码】代码随想录算法训练营第六十三天|42. 接雨水、84. 柱状图中最大的矩形。

2024-06-20 10:40:40 238

原创 代码随想录算法训练营第六十二天|739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II

创建一个单调栈记录已经遍历过的元素,因为结果数组内存的是天数差(温度数组的下标差)所以栈内存的是温度数组的下标。求下一个更大的数所以单调栈内是单调递增的。

2024-06-18 15:50:31 201

原创 代码随想录算法训练营第六十天|647. 回文子串、516.最长回文子序列

bool。

2024-06-16 23:40:15 533

原创 代码随想录算法训练营第五十九天|115.不同的子序列、 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

两个字符串做匹配,dp数组含义基本为s[i-1]为结尾,t[j-1]为结尾的操作次数或子序列个数…为了方便把dp[i][0]和dp[0][j]空出来方便初始化递推公式一般分为s[i-1]==t[j-1]和不等两种情况初始化时候要考虑dp[i][0]和dp[0][j],其他的位置取任意值即可,因为都会被递推公式覆盖遍历顺序都是从左到右,从上到下。有问题时需打印dp数组看和预期是否有差别。

2024-06-16 14:58:21 1026

原创 代码随想录算法训练营第五十七天|1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列

int。

2024-06-12 23:06:39 941

原创 代码随想录算法训练营第五十六天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

【代码】代码随想录算法训练营第五十六天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组。

2024-06-11 16:44:58 277

原创 代码随想录算法训练营第五十三天|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、总结

买卖股票的dp数组dp[i][j],i是第i天的价格,有j是状态,根据题目需要分为持有,不持有,第k次持有,第k次卖出后(买入前),冷却期等。需要了解当前状态可能是由前一天的哪种状态转变过来的。买卖一次:不持有=保持前一天的不持有或当天卖出持有=保持前一天的持有或者当天买入买卖多次:不持有=保持前一天的不持有或当天卖出持有=保持前一天的持有或者当天买入只能买卖2次:第一次持有=保持之前持有或当天买入第一次不持有=保持之前不持有或当前卖出第二次持有=保持之前持有或者当天买入。

2024-06-11 13:53:26 778

原创 代码随想录算法训练营第五十二天|123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV

确定dp数组以及下标的含义:dp[i][0]:不进行买卖操作;dp[i][1]:第i天第一次持有股票的最大利润;dp[i][2]:第i天第一次不持有股票的最大利润;dp[i][3]:第i天第二次持有股票的最大利润;dp[i][4]:第i天第二次不持有股票的最大利润;dp数组如何初始化://不操作//第一次持有//第一次不持有//第二次持有//第二次不持有确定遍历顺序:从前向后遍历。打印dp数组。int。

2024-06-07 16:46:31 329

原创 代码随想录算法训练营第五十一天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

int。

2024-06-06 22:30:26 404

原创 代码随想录算法训练营第五十天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

dp数组表示,每个节点偷当前节点和不偷当前节点可以取得的最大价值。要求当前节点值需要知道左右节点的值,所以是后序遍历。最后再偷根节点和不偷根节点之间取一个最大值即可。偷第一家就不能偷最后一家,偷最后一家就不能偷第一家,分别将两种状态求出,再从二者之间找最大值。两种情况分别可以用上题方法求解。

2024-06-05 23:04:56 394

原创 代码随想录算法训练营第四十九天|139.单词拆分、km56. 携带矿石资源、背包问题总结篇

结果类型不同求最大价值:dp[j]=max(dp[j],dp[j-muns[i]]+value[i])求背包装满的最大物品数:dp[j]=max(dp[j],dp[j-muns[i]]+1),非0下标初始为0。求背包装满的最少物品数:dp[j]=min(dp[j],dp[j-muns[i]]+value[i]),非0下标初始为INT_MAX。求装满有几种装法:dp[j]+=dp[j-num[i]]背包类型不同。

2024-06-04 14:58:19 484

原创 代码随想录算法训练营第四十八天| km57. 爬楼梯、322. 零钱兑换、279.完全平方数

一样,求组成背包重量值时元素的个数,不同的是本题求得是最少个数,474.一和零求的是最大个数。提前准备完全平方数集合,作为物品。

2024-06-03 23:06:20 598

原创 代码随想录算法训练营第四十六天|KM52. 携带研究材料、518. 零钱兑换 II、377. 组合总和 Ⅳ

【代码】代码随想录算法训练营第四十六天|KM52. 携带研究材料、518. 零钱兑换 II、377. 组合总和 Ⅳ。

2024-06-02 20:56:38 371

原创 代码随想录算法训练营第四十五天|1049. 最后一块石头的重量 II、494. 目标和、474.一和零

将所有石头分成2组,两组的重量尽可能相等,差值最小。计算石头总重,再除以2就是目标重量,求要达到该重量能装的石头的最大价值(重量)。

2024-06-01 18:18:46 503

原创 代码随想录算法训练营第四十四天|km46. 携带研究材料、 416. 分割等和子集

int。

2024-05-31 00:00:47 221

原创 代码随想录算法训练营第四十三天|343. 整数拆分、96.不同的二叉搜索树

【代码】代码随想录算法训练营第四十三天|343. 整数拆分、96.不同的二叉搜索树。

2024-05-29 23:38:32 307

原创 代码随想录算法训练营第四十二天|62.不同路径、63. 不同路径 II

int。

2024-05-28 15:42:22 757

原创 代码随想录算法训练营第四十一天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

【代码】代码随想录算法训练营第四十一天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。

2024-05-27 22:57:27 318

原创 代码随想录算法训练营第三十九天|738.单调递增的数字、968.监控二叉树、总结

找出局部最优并可以推出全局最优,就是贪心,贪心没有固定的解题模式。

2024-05-26 23:13:32 167

原创 代码随想录算法训练营第三十八天|435. 无重叠区间、763.划分字母区间、56. 合并区间

先排序,两个区间有重叠就删一个,要删右边界比较大的,保留右边界较小的。这样才能保证删除最少得区间。

2024-05-24 14:58:04 157

原创 代码随想录算法训练营第三十七天|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

先从大到小排身高,身高相同预设人数小的在前,将数据源进行排序。在按照比自己高的人数将矮的人插入对应的位置。

2024-05-23 23:38:13 259

原创 代码随想录算法训练营第三十六天|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

【代码】代码随想录算法训练营第三十六天|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果。

2024-05-22 19:26:31 246

原创 代码随想录算法训练营第三十五天|122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

【代码】代码随想录算法训练营第三十五天|122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II。

2024-05-21 11:30:45 200

原创 代码随想录算法训练营第三十四天|455.分发饼干、376. 摆动序列、53. 最大子序和

【代码】代码随想录算法训练营第三十四天|455.分发饼干、376. 摆动序列、53. 最大子序和。

2024-05-20 23:02:50 141

原创 代码随想录算法训练营第三十二天|332.重新安排行程、51. N皇后、37. 解数独、总结

标准模板:void backtracking(参数) {if (终止条件) {//控制树形结构在哪一层收获结果,一般通过单层结果的元素数量控制将单层结果存放到结果集中;return;for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表);// 递归回溯,撤销处理结果在单一数据源集合内取元素且数据源中没有重复元素void backtracking(数据源,startIndex) {

2024-05-19 21:17:40 1578

原创 代码随想录算法训练营第三十一天|491.递增子序列 、46.全排列、47.全排列 II

【代码】代码随想录算法训练营第三十一天|491.递增子序列 、46.全排列、47.全排列 II。

2024-05-19 17:51:48 209

原创 代码随想录算法训练营第三十天|93.复原IP地址、78.子集、90.子集II

【代码】代码随想录算法训练营第三十天|93.复原IP地址、78.子集、90.子集II。

2024-05-18 22:43:49 132

原创 代码随想录算法训练营第二十九天|39. 组合总和、40.组合总和II、131.分割回文串

【代码】代码随想录算法训练营第二十九天|39. 组合总和、40.组合总和II、131.分割回文串。

2024-05-17 17:53:16 140

原创 代码随想录算法训练营第二十八天|216.组合总和III、17.电话号码的字母组合

【代码】代码随想录算法训练营第二十八天|216.组合总和III、17.电话号码的字母组合。

2024-05-16 22:25:07 121

原创 代码随想录算法训练营第二十七天|回溯算法、77. 组合

【代码】代码随想录算法训练营第二十七天|回溯算法、77. 组合。

2024-05-15 20:48:38 149

原创 代码随想录算法训练营第二十五天|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树、总结篇

二叉数的遍历分类:深度优先:前序(中左右)、中序(左中右)、后序(左右中)广度优先:层序遍历二叉树的属性:对称、最大深度、最小深度、子节点个数、平衡、遍历路径、左(右)叶子节点之和、左下角的值、路径总和。二叉树的构造:翻转、构造、构造最大、合并两个二叉树二叉搜索树的属性:搜索二叉搜索树中的节点、判断是不是二叉搜索树、二叉搜索树的最小绝对差、二叉搜索树的众数、二叉搜索树转累加树二叉树的公共祖先、二叉搜索树的公共祖先二叉搜索树的修改和构造:插入节点,删除节点、修剪树、构造树。

2024-05-14 18:58:44 304

原创 代码随想录算法训练营第二十四天|235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

从根节点向下搜索,如果当前节点数值大于p和q证明需要在左子树范围内搜索;如果当前节点数值都小于p和q,需要在整个右子树中寻找,找到在p和q之间的节点,就是最近的公共祖先节点。

2024-05-13 18:47:34 170 1

原创 代码随想录算法训练营第二十三天|530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

相邻两个节点相等计数器加1,计数大于最大值就更新最大值,然后把之前收集的结果清空,证明之前收集的结果是错的,计数等于最大值就把该节点的值加入结果集。

2024-05-09 23:35:46 168

原创 代码随想录算法训练营第二十二天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

找数组的最大值,最大值左侧是左子树,右侧是右子树。

2024-05-09 19:32:36 145

原创 代码随想录算法训练营第二十一天|513.找树左下角的值 、112. 路径总和、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

层序遍历找每层的第一个值。递归找叶子节点记录其深度,如果比先前记录的最大深度大就更新最大深度,同时获取该节点的值。先遍历左节点记录该值,遍历右节点时,深度与左节点相同所以不会更新结果和最大深度。

2024-05-09 16:23:26 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除