- 博客(64)
- 收藏
- 关注
原创 vscode的配置和使用
缩小:View -> Appearance -> Zoom out(快捷键Ctrl + -)放大:View -> Appearance -> Zoom in(快捷键Ctrl + =)打开“扩展”,在搜索框中输入“catkin_tools”,下载插件;侧边栏字体调整到合适大小后,可以按下一步调整代码区字体大小。这样在ROS工程里,引用头文件时,就不会出现红色的波浪线了;打开“扩展”,在搜索框中输入“ROS”,下载插件;4. 如何在vscode中配置opencv。3.如何在vscode中配置ROS工程。
2023-08-14 16:45:42 895
原创 禾赛激光雷达sdk调试
激光雷达的IP地址,默认是192.168.1.201。但是有可能被别的用户改过IP地址,导致别的网段也会出现。如果ping不通,用wireshark抓包工具查看。我用的激光雷达,IP被改成了192.168.10.201。在左侧面板中,把Fixed Frame 改成配置参数frame_id, 就可以看到点云了。3.激光雷达硬件通过网线连接到主机,然后更改网口的IP地址;4.启动“hesai_lidar.launch”1.产品型号: "PandarXT-32"根据官网教程安装配置即可;
2023-07-26 17:18:21 1642
原创 速腾robosense-sdk配置和使用方法
原因可能是你用的ROS版本不对,我之前在ubuntu18.04+ROS-melodic上编译的时候,这个问题反复出现。2.假如你的ROS版本是对的,还是出现了“ERRCODE_MSOPTIMEOUT”,换一种编译方式。接着把速腾雷达的点云话题,添加到可视化列表里,左下角点击“Add”, 在弹出的对话框中可以看到rslidar_points选择“PointCloud2”在上述高亮地方,把雷达类型改成你自己的就行了,这个文件里只有这一个地方需要改,其他的不用改。接着开始编译,我选择的编译方式是。
2023-07-18 11:23:37 2427 9
原创 点云数据标注方法研究
在速腾激光雷达的 ros 驱动上,修改 ros_rslidar 中的 rs_lidar_16.launch 文件,回放 pcap。另外,cloudcompare不支持读取bin格式的文件(KITTI 的点云数据就是这种格式)。点云最常用的数据格式就是rosbag(多帧), 以及通过 Wireshark 抓取的pcap包(多帧)。以下是Open3D读取的点云,可视化的结果。2.4 如何从多帧的rosbag数据中,截取单帧的点云数据。使用上述第一条命令,读取的点云某一帧数据,我的点云格式为txt(单帧)。
2023-07-14 17:46:44 965
原创 点云3D检测算法-Point pillar踩坑日记
其次,有些情况下,安装的torch是cpu 版本的。的博客-CSDN博客。经排查,以下索引的图像文件破损,在train.txt,val.txt,trainval.txt,test.txt中删除即可。说明原先 train.txt,val.txt,trainval.txt,test.txt中的内容,某些地方肯定有问题。接着我将train.txt,val.txt,trainval.txt,test.txt中的内容只改为一行。其次,下载的kitti数据集,解压的时候,可能出现破损文件,请一一排查,具体请看2.5。
2023-07-13 11:35:49 481
原创 leetcode-741. 摘樱桃
首先介绍一下贪心的思路,每次都取最优解。对于第一条路径来说,记录一下最优路径,接着将最优路径上的樱桃重置为0. 然后再利用一次贪心的思路。当然贪心思想是错误的int func(vector<vector<int>>& grid, vector<vector<int>>& dp){ int m = grid.size(); int n = grid[0].size(); int sum = grid[0][0]; dp[0
2022-05-15 21:43:14 389
原创 面试题-动态规划
一开始想到了dp, 不过由于一些细节,没想通。结束后才想出来了。int sumSubarrayMins(int* arr, int arrSize){ int mod = 1e9 + 7; int n = arrSize; vector<int> dp1(n, 1); vector<int> dp2(n, 1); for (int i = 1; i < n; i++) { if (arr[i] < arr[i - 1])dp1[i] = ...
2022-05-10 16:16:51 209
原创 算法竞赛进阶指南- 月之谜
迭代版本,根据原书的题解编写。int func(int R){ int res = 0; vector<int> arr; int r = R; int N = 0;//确定R有N位 while (r){ N ++ ; int mod = r % 10; arr.push_back(mod); r /= 10; } vector<vector<vector<vector<int>>>> dp(6, vec
2022-05-09 11:09:16 185
原创 算法竞赛进阶指南- A Decorative Fence
void func1(int n,int &c){ int dp[21][21][2] = { { { 0 } } }; dp[1][1][0] = dp[1][1][1] = 1; vector<int> used(21, 0); for (int i = 2; i <= 20; i++) { for (int j = 1; j <= i; j++) { for (int p = j; p <= i - 1; p++) { .
2022-05-07 20:53:34 444
原创 算法竞赛进阶指南- 炮兵阵地
bool isValid(int m,int n){ int cnt = 0; vector<int> one; while (cnt < n) { int tmp = m % 2; if (tmp == 1)one.push_back(cnt); m /= 2; cnt++; } int sz = one.size(); if (sz <= 1)return true; for (int i = 0; i < sz - 1; i++).
2022-05-01 17:50:53 309
原创 算法竞赛进阶指南- Mondriaans Dream
bool isvalid(int a, int b,int n){ int cnt = 0; int ct = 0;//连续的0 while (cnt < n) { int s = a % 2; int t = b % 2; if ((s | t) == 0)ct++; else{ if (ct % 2 != 0)return false; ct = 0; } a /= 2; b /= 2; cnt++; } if (ct % 2..
2022-04-30 18:34:02 400
原创 算法竞赛进阶指南-Gerald and Giant Chess
//用0代表白色的格子,1代表黑色的格子int func(vector<vector<int>> mat){ int m = mat.size(); int n = mat[0].size(); vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0)); for (int i = 1; i <= m; i++)dp[i][1] = 1; for (int i = 1; i.
2022-04-30 11:31:17 364
原创 算法进阶指南-陪审团
int jury(vector<int> d,vector<int> p,int m){ const int N = 11, M = 410, delta = 200; int f[N][11][M],ans[N]; memset(f, -0x3f, sizeof f); int n = d.size(); f[0][0][delta] = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <.
2022-04-26 15:51:43 250
原创 算法竞赛进阶指南- Cookies
bool cmp(int a,int b){ return a > b;}int func2(vector<int> &g, int m, int n){ if (g.size() != n)return -1; sort(g.begin(), g.end(), cmp); vector<vector<int>> dp(10, vector<int>(20, INT_MAX)); dp[0][0] = 0; for (i.
2022-04-22 17:37:43 145
原创 算法竞赛进阶指南- I-country
int func1(vector<vector<int>> &mat,int K){ int m = mat.size(); int n = mat[0].size(); int dp[4][9][3][3][2][2]; for (int i = 0; i <= m; i++)dp[i][0][0][0][1][0] = 0; for (int i = 1; i <= m; i++) { for (int j = 0; j < m..
2022-04-22 17:00:25 183
原创 算法竞赛进阶指南-传纸条
int func(vector<vector<int>> &mat){ int m = mat.size(); int n = mat[0].size(); //int dp[][][]; vector<vector<vector<int>>> dp(m + n, vector<vector<int>>(m+1, vector<int>(m+1, INT_MIN))); dp[0].
2022-04-22 15:43:21 101
原创 最长单调不下降子序列的长度
int func1(vector<int> a){ int m = a.size(); vector<int> dp(m + 1, 1); int mx = 0; for (int i = 2; i <= m; i++) { for (int k = 1; k < i; k++) { if (a[k - 1] <= a[i - 1]) dp[i] = max(dp[i], dp[k] + 1); mx = max(mx, .
2022-04-21 08:30:45 188
原创 算法竞赛进阶指南- Making the grade
int func(vector<int> a){ int m = a.size(); vector<int> b = a; sort(b.begin(), b.end()); vector<vector<int>> dp(m + 1, vector<int>(m + 1, 10001)); for (int i = 0; i <= m; i++){ dp[0][i] = 0; } for (int i = 1; ...
2022-04-20 17:59:35 148
原创 算法进阶-最长公共上升子序列
int lcis(vector<int> &a, vector<int> &b){ int m = a.size(); int n = b.size(); vector<vector<int>> dp(m+1, vector<int>(n+1,0)); int mx = 0; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++)...
2022-04-20 11:09:56 237
原创 蓝书-算法竞赛进阶指南-Running Median 对顶堆
vector<int> func(vector<int> &arr){ priority_queue<int> small; //- priority_queue<int> big; int m = arr.size(); vector<int> res; for (int i = 1; i <= m; i++) { if (small.size() == 0 || -arr[i - 1] < small..
2022-03-24 14:00:57 149
原创 算法进阶-蓝书-起床困难症
int calc(vector<vector<int>> vec, int bt, int base){ int res = base; for (int i = 0; i < vec.size(); i++) { int op = vec[i][0]; int para = vec[i][1]>>bt; if (op == 0)res &= para; else if (op == 1)res |= para; els...
2022-03-20 18:21:25 170
原创 费解的开关
算法进阶:int bitCntOne(int m){ int cnt = 0; while (m != 0){ cnt++; m -= m&(-m); } return cnt;}int lowbit(int m){ return m&(-m);}bool recur(vector<vector<int>> &mat, int row, int cnt, vector<int> &res).
2022-03-16 20:37:44 201
原创 求整数二进制位为1的个数
使用lowbit算法int bitCntOne(int m){ int cnt = 0; while (m != 0){ cnt++; m -= m&(-m); } return cnt;}
2022-03-16 18:01:12 100
原创 计算hamilton距离
int hamilton(int n, vector<vector<int>> weight){ //计算无向带权图,n个节点,从0到n-1。不重不漏经过所有点的最短距离 ///状态压缩 vector<vector<int>> dp(1 << n, vector<int>(n, 0)); dp[1][0] = 0; for (int i = 1; i < 1 << n; i++) { for (.
2022-03-14 13:20:50 367
原创 快速幂和大数相乘
int myPow(int a, int b, int p){ //求解a的b次方,结果对p取余 long long res = 1 % p; while (b) { if (b & 1)res = (long long)res*a%p; a = a*a%p; b = b >> 1; } return res;}int myMultiply(int a, int b, int p){ //求解a*b,结果对p取余 long long res =.
2022-03-14 12:37:04 121
原创 中缀表达式转化为后缀表达式
bool isop(char c){ if (c == '(' || c == ')' || c == '+' || c == '-' || c == '*' || c == '/')return true; return false;}string RPN(string s){ //1+2*(3-2)-8/4 //将中缀表达式转化为后缀表达式 unordered_map<char, int> in; // # ( *,/ +,- ) .
2022-03-08 00:37:41 73
原创 商汤二面-二叉树
给定二叉树的前序遍历和中序遍历,求后续遍历的结果。//先序// 1,2,4,5,3,6,7//中序// 4,2,5,1,6,3,7//后序//4,5,2,6,7,3,1void recur(TreeNode * &root ,vector<int> preorder, vector<int> inorder, int left1, int right1,int left2,int right2){ int mid = left2; while (in
2022-02-24 18:17:06 150
原创 快速排序 c++
int partitions(vector<int> &vec, int left, int right){ int index = left; int base = vec[index]; for (int i = index + 1; i <= right; i++) { if (vec[i] < base){ index++; if (index != i)swap(vec[index], vec[i]); } } vec[left.
2022-01-29 01:01:12 664
原创 蔚来2面概率
int func(vector<int> list1, vector<double> list2){ if (list1.size() == 1)return list1[0]; //float pro = rand(); double pro = 0.2; vector<double> sum(list2.size()+1, 0.); double sm = 0; for (int i = 1; i <= (int)list2.size();.
2022-01-22 11:58:32 430
原创 蔚来一面 算法题 最大图像连续区域
void dfs(vector<vector<int>> &mat, vector<vector<int>> &des, int rol,int col,int m, int n, int &cnt){ // int rol,int col // rol && col 字符打错了 if (mat[rol][col] == 1) { cnt++; mat[rol][col] = 0; for (.
2022-01-17 15:13:09 444
原创 leetcode-319
刚开始用动态规划算法做,超时int meet(int n){ int cnt = 0; for (int i = 2; i <= n; i++) { if (n%i == 0) cnt++; } if (cnt % 2 == 0){ return 1; } return 0;}int bulbSwitch(int n) { //动态规划算法超时 //if (n == 0 || n == 1) return n; //vector<int> dp
2021-12-13 22:42:26 616
原创 leetcode-114
起初,我的想法是先前序遍历二叉树,用数组记录节点。然后创建单链表。最后将创建的链表挂载到root节点上。可是部分通过。原因可能是测试用例检测原先root节点以及后续节点的变动情况void Preorder(TreeNode* root, vector<int> &vec){ if (root != NULL) { vec.push_back(root->val); } if (root->left != NULL) { Preorder(root-
2021-12-13 22:39:58 184
原创 leetcode-100
刚开始以为,只要前序遍历,中序遍历,后序遍历全部相等。没想到有一个测试用例没通过[1,1] [1,null,1]void Preorder(TreeNode* node, vector<int> &vec){ if (node != NULL){ vec.push_back(node->val); } if (node->left != NULL) { Preorder(node->left, vec); } if (node->
2021-12-07 08:23:23 60
原创 leetcode-950
这题用循环双端队列解。class MyCircularDeque {public: MyCircularDeque(int k) { m_iCapacity = k; queue = new int[m_iCapacity]; m_iSize = 0; front = 0; rear = 0; } ~MyCircularDeque() { delete[]queue; queue = NULL; } bool insertFront(int value) {
2021-11-30 16:30:37 166
原创 leetcode-918
维护二维数组int maxSubarraySumCircular(vector<int>& nums) { int n = nums.size(); int **dp = new int*[n]; for (int i = 0; i < n; i++){ dp[i] = new int(n); } for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++){ dp[i][j] = 0
2021-11-30 14:29:16 65
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人