- 博客(31)
- 收藏
- 关注
原创 N10 Plus branch missing lslidar_msgs/LslidarPacket.h
N10P 雷达在 Ros Melodic 中的配置,解决 missing lslidar_msgs/LslidarPacket.h
2024-03-17 17:56:18
1230
1
原创 Ros melodic 编译出现 undefined reference to ‘serial::Serial...‘
Ros melodic 编译出现 undefined reference to 'serial::Serial...' 对 serial 库未定义的引用
2024-03-11 12:22:41
634
原创 【动态规划】0-1背包问题
有 N 件物品和⼀个最多能放重量为 W 的背包。第 i 件物品的重量是 weight[i],得到的价值是 value[i]。每件物品只能用一次,求解将哪些物品装入背包里的物品价值总和最大。每⼀件物品都只有两个状态,取或者不取,因此可以使用回溯法搜索出所有的情况,那么时间复杂度就是 O(2^n),这里的 n 表示物品数量假设背包的最大重量为 4,物品如下:二维数组 dp[i][j] 表示从下标为 [0-i] 的物品里任意取,放进容量为 j 的背包,价值总和最大是多少可以有两个方向推出来 dp[i][j]:①
2023-05-27 11:42:07
325
原创 【LeetCode】96. 不同的二叉搜索树(C++)
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
2023-05-26 18:43:58
158
原创 【LeetCode】343. 整数拆分(C++)
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。解释: 2 = 1 + 1, 1 × 1 = 1。返回 你可以获得的最大乘积。输入: n = 10。
2023-05-25 19:37:29
582
原创 【LeetCode】63. 不同路径 II(C++)
机器人试图达到网格的右下角(在下图中标记为 “Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输入:obstacleGrid = [[0,1],[0,0]]网格中的障碍物和空位置分别用 1 和 0 来表示。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。解释:3x3 网格的正中间有一个障碍物。
2023-05-25 15:10:30
433
原创 【LeetCode】62. 不同路径(C++)
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。输入:m = 3, n = 7。输入:m = 3, n = 2。输入:m = 7, n = 3。输入:m = 3, n = 3。用一维数组维护,优化空间复杂度。
2023-05-25 15:10:13
112
原创 【LeetCode】70. 爬楼梯(C++)
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?需要 n 阶你才能到达楼顶。解释:有两种方法可以爬到楼顶。解释:有三种方法可以爬到楼顶。
2023-05-07 20:34:13
434
原创 【LeetCode】509. 斐波那契数(C++)
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。F(n) = F(n - 1) + F(n - 2),其中 n > 1。解释:F(2) = F(1) + F(0) = 1 + 0 = 1。解释:F(3) = F(2) + F(1) = 1 + 1 = 2。解释:F(4) = F(3) + F(2) = 2 + 1 = 3。给定 n ,请计算 F(n)。
2023-05-07 19:56:04
308
原创 【C++】STL - 集合 set
集合(set)是一个内部自动有序且不含重复元素的容器,它可以在需要删除重复元素的情况下大放异彩,节省时间,减少思维量。set 就是关键字的简单集合,当只是想知道一个值是否存在时,set 是最有用的。set 内部采用的是一种非常高效的平衡检索二叉树:红黑树(Red-Black Tree),也称为 RB 树,RB 树的统计性能要好于一般平衡二叉树。在 set 中每个元素的值都唯一,而且系统能根据元素的值自动进行排序,set 中元素的值不能直接被改变。
2023-05-07 18:52:06
16237
6
原创 【C++】STL - 向量 vector
向量(vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。与任意其它类型容器一样,它能够存放各种类型的对象。可以说,向量是一个能够存放任意类型的动态数组。vector 的数据安排及操作方式,与 array 非常相似,两者的唯一差别在于空间的运用的灵活性。array 是静态空间,一旦配置了就不能改变,如果要重新改变大小,首先要配置一块新的空间,然后将旧空间的数据搬到新开辟空间,再释放原来的空间;
2023-05-06 21:38:42
1767
原创 【C++】标准模板库(STL)
标准模板库 STL(Standard Template Library),是 C++ 标准库的一部分,不需要单独安装,只需要 #include 头文件。STL 的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL 变得非常通用。例如,由于 STL 的 sort() 函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表、容器和数组;STL 的另一个重要特性是它不是面向对象的。STL 主要依赖于模板而不是封装、继承和虚函数(多态性)—— OOP的三个要素。
2023-05-06 18:14:22
6051
原创 【LeetCode】215. 数组中的第K个最大元素(Java)
快速排序算法基于快速排序的思想衍生,其可以使某些需要 O(NlogN) 时间复杂度的问题,在平均复杂度 O(N) 下完成。常见的例子是求数组中的第 k 小的数。在这种情况下,优先级队列的头是队列中最小的元素,请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。add() - 将指定的元素插入队列。输入: [3,2,3,1,2,4,5,5,6], k = 4。输入: [3,2,1,5,6,4], k = 2。
2023-05-04 20:28:45
875
原创 【CCF】202303-1-田地丈量
思路:本质上是求两个矩形的重叠面积,则先判断两个矩形是否存在交叉部分,再求出交叉矩形的边界坐标,右边界即原两个矩形右边界中的较小值,左边界即原两个矩形左边界中的较大值。
2023-04-27 13:56:57
177
原创 【CCF】202209-1-如此编码
思路:由样例 3 解释和提示,容易想到 b[i] = m / c[i - 1],则需要先计算出 ci,而根据前缀乘积,c[i] = c[i - 1] * a[i],注意数组下标。
2023-04-26 21:29:52
196
原创 【CCF】202203-1-未初始化警告
思路:最初的想法是用两个数组存储 xi 和 yi,再嵌套 for循环,实操后发现超时。进一步:问题可以简化为是否存在 j < i 满足 xi = yi,则考虑使用不许添加重复数值的容器 set,每进行一次输入,则先判断 y 是否在 set 中出现过,再将 x 插入 set 中。注意:由于 1
2023-04-26 18:16:41
379
原创 【CCF】202112-1-序列查询
思路:由样例 1 的求解过程可以想到,无需列出 f(x) 数组;先计算 f(0) 到 f(n) 的总和,即分别计算 Ai-1 到 Ai 之间相隔的自然数个数乘以下标 i-1 的结果;再计算 f(n+1) 到 f(N-1) 的总和,即 An到 N 之间相隔的自然数个数乘以下标 n 的结果。
2023-04-26 18:05:13
158
原创 【CCF】202109-1-数组推导
思路:当数组 B 中 Bi > Bi-1 时,说明此时 Ai = Bi,则 max 和 min 都要加上 Bi,而 Bi = Bi-1 时,由于 { Bn } 为非递减序列,则此时 Ai 最大值为 Bi,最小值为0。
2023-04-26 17:43:43
83
原创 【LeetCode】524. 通过删除字母匹配到字典里最长单词(Java)
题目描述:给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。
2023-04-20 19:58:17
230
原创 常见链表问题(整理)
一、数组与链表 作为线性表的两种存储方式 —— 链表和数组,这对相爱相杀的好朋友有着各自的优缺点。接下来,我们梳理一下这两种方式。 数组,所有元素都连续的存储于一段内存中,且每个元素占用的内存大小相同。这使得数组具备了通过下标快速访问数据的能力。但连续存储的缺点也很明显,增加容量,增删元素的成本很高,时间复杂度均为 O(n)。 增加数组容量需要先申请一块新的内存,然后复制原有的元素。如果需要的话,可能还要删除原先的内存。 删除元素时需要移动被删除
2023-04-19 20:33:49
471
原创 DAY7 双指针 III(判断链表是否存在环+返回环路开始的位置)
4.15 LeetCode141-环形链表 + LeetCode142-环形链表 II
2023-04-19 17:58:39
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人