自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode升级之路(数据结构更新完毕)增加C++版本ing

时间复杂度常见的时间复杂度O(1):执行常数次,和输入无关def O1(num): i = num j = num*2 return i+jO(N):def ON(num): total = 0 for i in range(num): total+=i return totalO(logN):def OlogN(num); i = 1 while(i < num): i = i*2 return iO(M+N)def OMN(

2020-11-28 18:03:45 3485 3

原创 c++右值和左值

左值是为可以引用的值,能够取到内存地址。右值是不可取到内存地址的值,是一个临时值。左值有左值引用,较为常见。如果想对右值进行引用,则需要使用右值引用。return 5;}// error// 不能修改其值// 右值引用,并且可以后续修改值。

2022-09-18 05:44:06 169 1

原创 Json文件解析

Json文件参考blog:json文件格式详解JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。示例:{ "topics": [ { "topic": "/RFC01", "type": "ld_image" }, { "topic": "/hesai_2", "type":

2021-06-06 02:27:11 920

原创 c++prime chapter2.变量和基本类型

基本类型注意事项当明知道数值不可能为负时,选用无符号类型在算数表达式中尽量不要使用char因为char在有的机器上是有符号的, 但有的机器上是无符号的如果要使用,必须明确指定signed char还是unsigned char切勿混用带符号类型和无符号类型当带符号类型取值变为负数时,会出现异常结果 这是因为带符号数会自动转换成为无符号数#include <iostream>int main(){ // 切勿混用带符号类型和无符号类型. // 当

2021-03-14 08:10:44 231

原创 c++读取数量不定的输入数据

不知道用户输入的个数,需要不断读取数据直至用户停止输出为止.程序实现 int value; int sum = 0; while(std::cin >> value){ sum+=value; } std::cout<<sum<<std::endl; return 1;这里std::cin >> value运算返回的是std::cin对象,该对象在作为条件时,能检测流的状态.如果检测成功,

2021-03-13 06:23:26 496

原创 单调栈详解

使用背景通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。单调栈的本质是空间换时间,用一个栈来记录右边第一个比当前元素的元素,优点是只需要遍历一次。单调栈的时候首先要明确如下几点:单调栈里存放的元素是什么?单调栈里只需要存放元素的下标i就可以了,如果需要使用对应的元素,直接T[i]就可以获取单调栈里元素是递增呢? 还是递减呢?使用单调栈主要又三个判断条件。当前遍历的元素T[i]小于栈顶元素T[st.top()]的

2021-03-06 07:50:14 237

原创 c++面试知识点

编译过程编译过程分为四个过程:编译(编译预处理、编译、优化),汇编,链接。编译预处理:处理以 # 开头的指令;编译、优化:将源码 .cpp 文件翻译成 .s 汇编代码;汇编:将汇编代码 .s 翻译成机器指令 .o 文件;链接:汇编程序生成的目标文件,即 .o 文件,并不会立即执行,因为可能会出现:.cpp 文件中的函数引用了另一个 .cpp 文件中定义的符号或者调用了某个库文件中的函数。那链接的目的就是将这些文件对应的目标文件连接成一个整体,从而生成可执行的程序 .exe 文件链接分为两种:

2021-03-02 07:42:48 72

原创 基于采样的路径规划

Probablistic Road MapRPM: 概率道路图在地图中撒点,将点连接起来。构建成图结构,构成简易的地图Learning Phase:随机撒点删除落在障碍物中的点将点连接起来:连接最近的点,有障碍无的线不要。Query Phase搜索从起点到终点的路径。(A*, Dijikstra)优缺点:优点:概率完备的缺点:两点边界值问题(机器人动力学)先学习,在查询。其实可以边学习,边查询。边生成图,边查询路径提高效率:Lazy coll

2021-02-21 20:31:36 142

原创 双指针 + 滑动窗口

双指针法双指针法可以看成是虫在蠕动,先右指针移动,然后左指针在根据判定条件,不断移动,直至满足判定条件。接着右指针再次移动,如此循环用代码模板可以看成int left = 0;int right = 0;int res = 0;while(right < nums.size()){ sum+=nums[right]; while(不满足条件时){ sum-=nums[left]; left--; } res = max(res, right - left + 1); ri

2021-02-05 06:35:31 139

原创 二分法

适用场景一般适用场景是有序数组中查找指定元素。模板大佬的模板目标值包含在我们设置的范围中(通过mid来判定)、# Input: vector<int> nums, targerint left = 0;int right = nums.size()-1;while(left <=right){ # 为了防止溢出 int mid = left + (right - left) /2; if(nums[mid] == target){ return mid; }

2021-02-01 07:02:35 80

原创 python字符串相关操作及库

在写自动化脚本时,通常需要进行字符串操作。例如,需要根据输入的文件名,生成相对应的输出文件名。这时需要对字符串进行切割,合并等操作。python字符串集合可以参考: https://www.jianshu.com/p/b758332c44bb常见的操作# 发现子字符串的首引索str1 = "this is string example....wow!!!"str2 = "exam"print str1.find(str2) # 15...

2021-01-27 06:42:38 212

原创 如何使用Python写脚本(Linux)

Python脚本#!/usr/bin/env python3.6import osimport shutildir="/media/chahe/HD7/magna/RFL03"output_dir_mdf_pcap = "/media/chahe/HD7/magna/output_pcap"output_dir_pcap_merge = "/media/chahe/Samsung_T5/magna/output_pcap"# MDF ----> PCAP# convert to

2021-01-26 18:25:58 689

原创 wireshark学习笔记

安装方法https://ywnz.com/linuxjc/4002.htmlsudo add-apt-repository ppa:wireshark-dev/stable sudo apt updatesudo apt -y install wireshark

2021-01-21 07:44:30 76

原创 c++外输入参数设置(yaml + argv)

动机:

2021-01-14 00:46:02 400

原创 动态规划(0-1背包)

动态规划通常可以拆解为五步,确定dp数组下标的含义确定状态转换方程dp数组如何初始化确定遍历顺序举例推到dp数组

2021-01-13 07:44:14 86

原创 优先队列 C++

复杂度:插入push: O(N)弹出堆顶元素: O(logN)特点优先队列具有队列的所有特性,包括基本操作添加了内部的一个排序(堆)如果将pair类型存入堆,则先比较第一个元素,第一个元素相等时,在比较第二个元素常用操作创建优先队列priority_queue<Type, Container, Functional>//升序队列(小顶堆)priority_queue <int,vector<int>,greater<int> &gt

2020-12-27 07:41:17 206

原创 CMakeLists实战学习

单个源文件这时的源文件#include <stdio.h>#include <stdlib.h>/** * power - Calculate the power of number. * @param base: Base value. * @param exponent: Exponent value. * * @return base raised to the power exponent. */double power(double base, in

2020-12-22 22:57:59 324

转载 动态规划,股票问题留坑

leetcode 股票问题汇总

2020-12-17 07:03:25 113

原创 c++一些常见的内置函数(字符串)

字符串与数字之间互换将数字类型数据结构转换成字符串int a = 1;double b = 0.0;string digit1 = to_string(a);string digit2 = to_string(b);cout << digit1 << endl; #1cout << digit2 << endl; #0.000000将字符串转换成整形数据如果字符串含有小数位,则直接省略掉小数位int a = 1;str

2020-12-17 07:01:42 485

原创 GIT建立切换分支

建立分支点击branch再点击new branch输入新分支的名字,然后点击create branch创建成功后回自动进入分支本地切换分支# 查看所有分支或者是本地分支git branch -a or git branch# 切换到新的分支上面git checkout '分支名'git push这时会默认push到当前分支...

2020-12-16 02:03:15 181

原创 有关字符串元素统计类型题目的一点感想

在刷leetcode时,常常会发现需要将字符串中的char统计出现的频率。其实这时我们可以构建一个数组储存字符出现的频率。string s;vector<int> con(26,0);for(char e:s){ con[e-'a']++;}例子621. 任务调度器给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任

2020-12-05 06:09:46 260

原创 贪心算法LEETCODE集锦(包含区间问题)

455.分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释:你有三个孩子和两块小饼干,3个孩子

2020-11-25 18:37:00 400

原创 常见的三种哈希结构

查询一个元素是否出现在集合中的快速方法,哈希表一般会使用如下三种数据结构数组setmapsetc++中对于set提供了三种数据结构集合底层实现是否有序数值是否可以重复是否能更改数值查询效率增删效率std::set红黑树有序否否O(logn)O(logn)std::multiset红黑树有序是否O(logn)O(logn)std::unordered_set哈希表无序否否O(1)O(1)map集合

2020-11-07 22:02:29 588

原创 Eigen库的安装及常见操作

Eigen库的安装sudo apt-get install libeigen3-devsudo cp -r /usr/include/eigen3/Eigen /usr/includeEigen库的常见操作#include <iostream>#include <eigen3/Eigen/Dense>using namespace std;using namespace Eigen;// 常用template <typename T>using M

2020-10-31 07:52:39 358

原创 VSCode在linux下的实战

源文件Gun.h#pragma once#include <string>class Gun{private: /* data */ int bullet_count; std::string type;public: Gun(std::string type){ this->bullet_count = 0; this->type = type; } void addBullet(in

2020-10-30 22:22:06 144

原创 c++中strtok函数

strtok函数可以将字符串进行分割char * strtok ( char * str, const char * delimiters );int main (){ char str[] ="- This, a sample string."; char * pch; printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str," "); while (pch != NULL) {

2020-10-28 18:27:31 360

原创 Linux常见命令

pwd 当前位置cd … 返回上级目录cd ./xx 进入xx文件夹, ./表示当前路径后的路径cd ~/xx 进入xx文件夹, ./表示当根径后的路径mkdir xx 创建xx文件夹mkdir -p xx/yy 创建含有子目录的文件夹–h or --help 可以查看帮助mkdir --h 查看mkdir帮助rm 移除操作rm -r 删除[recursive] remove file or foldercp -r source distination复制cp -r hello he.

2020-10-24 16:01:50 73

原创 PID控制

比例控制环节成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。无法消除稳态误差。但是响应快。由于实际系统是有惯性的,比例作用不宜太强,比例作用太强会引起系统振荡不稳定。积分控制环节主要用于消除静差,提高系统的无差度由于实际系统是有惯性的,输出变化后,y(t)值不会马上变化,须等待一段时间才缓慢变化,因此积分的快慢必须与实际系统的惯性相匹配,惯性大、积分作用就应该弱,积分时间

2020-10-22 07:08:22 2505

原创 c++如何跳出多重循环

c++中,break只能跳出单层循环。跳出多重循环方法:使用return, 跳出整段子程序使用goto,跳出所有循环,到指定地方class Solution {public: string longestCommonPrefix(vector<string>& strs) { string res; if(strs.empty()){ return res; } for(int

2020-10-17 05:32:06 8250

原创 bfs模板

广度优先搜索的模板利用一个队列记录每层的元素将每元素连接的下层元素压入队列将队列头元素离开队列直到队列为空,停止搜索class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*> que; if (root != NULL) que.push(root); vector<vecto

2020-09-29 06:37:19 86

原创 Linux下Visual code使用

创建工作空间mkdir projectscd projectsmkdir helloworldcd helloworldcode ..cd 是启动visual code创建文件创建helloworld.cpp文件#include <iostream>#include <vector>#include <string>using namespace std;int main(){ vector<string> msg

2020-09-27 08:44:47 220

原创 gazebo模块化建模+控制器+传感器

使用xacro模块化建模定义常量: <xacro:property name="M_PI" value="3.1415926"/> <xacro:property name="base_mass" value="20" /> <xacro:property name="base_radius" value="0.20"/> <xacro:property name="base_length" value="0.16"/>

2020-09-14 17:29:33 678

原创 算法面试注意事项

注意iostream输入例如:输入是一整串整数,以空格分开。怎样读取#include <iostream>#include <vector>#include <stdio.h>using namespace std;int main(){ int a = 0; vector<int> container; while(cin >> a){ con.push_back(a); char c = getchar; if

2020-09-13 06:51:40 76

原创 c++中stl中的stack和queue

栈和队列是STL中两个数据结构。三个C++版本的STL:HP STLPJ PlaugerSGI STL常用的是SGI的STL里的数据结构。栈和队列是不提供随机访问功能的,所有的元素必须符合LIFO or FIFIO. 也不提供迭代器Iterator来遍历元素STL中栈的实现。对外提供pop,push,top三个接口底层以vector or deque or list实现默认为deque实现也可选择另外两个数据结构实现std::stack<int, std::vector&

2020-09-11 21:39:15 110

原创 使用Gazebo建模

使用Gazebo建模// 创建包的步骤// 1. 创建文件夹// 2. 创建src子文件夹catkin_init_workspace catkin_makesource devel/setup.bash // 3. 进入src子文件夹// 4. 创建小车模型的包catkin_create_pkg my_car roscpp rospy std_msgs urdf xacrotouch my_car.urdf建模时需要注意坐标间的关系, 尤其是要区分Link和Joint模块中的坐标

2020-09-11 10:43:05 267 1

原创 归并排序法及优化

归并排序法将数组分成两半,然后分别对其排序在将两部分在分别分成两半,然后对其排序直到每部分只剩下一个元素最后再使用递归merge两边的数组。Merge时,需要借助三个指针。一个指向左半部分;一个指向右半部分;一个指向辅助数组。class Solution {public: // 归并排序 void merge(vector<int>& arr, int low, int mid, int high){ // vector<int&

2020-09-09 17:28:16 86

原创 快速排序

Leetcode 912 数组排序给你一个整数数组 nums,请你将该数组升序排列。方法一: 快速排序参考: https://blog.csdn.net/wthfeng/article/details/78037228基本思想:将基点放入他正确的位置,将数组划分为两份: 大于基点的,小于基点的。然后对两份分别进行递归,直至所有的点都位于合适的位置。确定出归条件,当区间只含有一个元素时,即:不用继续排序了。 所以出归条件为: low >= high.先将右边界向左扫描,遇到小于基点的元素

2020-09-09 03:11:29 141

原创 Leetcode报错诊断

Heap-buffer-overflow引索越界,做题时maxIndex = nums.size();应该是maxIndex = nums.size() - 1;===================================================================30==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60300000000c at pc 0x000000401749 bp 0x7f

2020-09-09 01:02:42 337

原创 Leetcode有关原地操作数组的题

Leetcode 26给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路:使用双指针法,pre, cur

2020-09-08 08:07:44 289

原创 如何在回调函数中发布消息

使用类实现在回调函数中发布消息#include <ros/ros.h>#include "circle/PersonMsg.h"#include "circle/velCommand.h"#include <turtlesim/Spawn.h>#include<geometry_msgs/Twist.h>using namespace std;#include <iostream>using namespace std;class Sub

2020-08-28 11:57:58 544

空空如也

空空如也

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

TA关注的人

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