自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows下vscode完全配置(for C++)

1、首先安装编译器MinGW-W64下载地址注意不要直接点击Download,往下翻找到最新的下载x86_64-posix-seh。解压后得到mingw64文件夹,把它放到一个地方(你开心就好)然后找到其中的bin路径,将这个完整路径加入到系统环境变量的path中。最后测试,打开CMD输入gcc -v 有版本号输出即可。2、配置VScode在打开的文件夹下面,点新建文件夹,名称为.vscode;然后在.vscode下创建 launch.json,tasks.json,settings.json

2021-07-23 11:34:18 606

原创 2021.5.19leetcode总结

1、二进制中1的个数(汉明重量)与主站的一道题一致,只需要设置一个count用于统计消除数字1的次数即可。当n这个二进制数不为0时,对count进行+1操作,然后再利用n&(n-1)消除整个二进制数最右边的1。2、数组中出现数字超过一半的数字两种解法:一种是利用哈希表,一种是利用众数的数学性质首先说哈希表,创建一个unordered_map mp;创建一个哈希表用于存储键值对,从原数组中取出相应的键,然后对相应的值进行+1。循环取值完成后,循环判断哈希表中的值,如果大于原数组大小的一半,则输

2021-05-19 10:18:46 171

原创 2021.5.17leetcode总结

1、重建二叉树题目的要求是根据提供的前序遍历和中序遍历来重建一棵二叉树解题思路:自定义一个重建函数,主函数在设定好范围后,调用即可。重建函数的想法是,首先根据输入的先序的范围进行判断,如果先序遍历范围的左边大于右边,则直接返回NULL。首先根据先序遍历的数组获得根结点的值,然后重建根结点。再根据根结点的值在中序遍历中的位置,获得左子树和右子树的数据范围。然后递归的重建左子树和右子树即可。这里一定要注意重建左子树和右子树的范围,根据样例计算一下count。重建完成后,返回root。2、用两个栈实现队列。

2021-05-17 20:39:10 144

原创 return NULL or return nullptr?

nulltpr is a keyword that represents zero as an address(its type is considered a pointer-type),while NULL is the value zero as an int. If you’re writing something where you’re referring to the zero address ,rather than the value zero, you should use nullpt

2021-05-17 10:32:47 690

原创 2021.5.14leetcode总结

1、分发饼干这是一个人典型的贪心算法的题目,原意是每一个孩子有一个饥饿度,然后每一块饼干有一个值,只有当饼干的值大于孩子的饥饿度的时候,孩子才能被满足,最终求可以被满足的孩子的数量。总体的思想就是首先对孩子的饥饿度和饼干的值进行排序。每一次从饼干中选出最小的能够满足孩子饥饿度的饼干。(从第一个孩子和第一个饼干做对比,需要理解的是,如果孩子满足了,那么孩子和饼干都要用下一个,如果孩子没满足,孩子不变,饼干用下一个。也就是说,一定要理解到的是,只要进行一次循环对比,无论孩子是否得到满足,饼干都必须用下一块。

2021-05-14 11:15:19 115

原创 2021.5.12leetcode总结

1、数组中的重复数字两种解法,最简单的解法是先对数组进行排序,然后从第二位开始遍历,也就是数组下标为1的那一位,然后判断,如果出现了nums[i-1] == nums[i],就证明数组中有重复的数字出现,返回nums[i]即可。第二种解法就是对存在的数组建立hashtable,对于每一个出现的数字都在hashtable对应的key值位置增加value,然后查找hashtable的value值,如果大于1,则数组中出现了重复的数字,返回当前hashtable的key值即可。注意:hashtable的建表

2021-05-14 10:50:03 106

原创 vector<int>& or vector<int> ?

在刷leetcode的时候,遇到的问题:在有些地方,使用的是vector&,而另一些地方使用的是vector。一直没弄懂有一个&和没有&到底是什么区别。在StackOverflow上找到了一个老哥给出的答案,原答案是这样写的:老哥的意思就是说,当你使用vector的时候,函数获得的是数组的copy也就是复制,你可以在函数中对数组做任何的事情,并且你的原始数组的数据不会改变。但是如果你使用vector&的时候,函数获得的就是对原始数据的引用,在函数中任何的修改,都会

2021-05-13 20:19:25 1539 1

原创 双指针问题总结

双指针并不是具体的算法,而是一种将问题简化的套路。经常性的能够在二分查找等算法中用到双指针。所谓的双指针,其实就是利用两个变量动态的存储两个或多个结点,方便我们操作。当我们遇到数组、链表之类的题目的时候,应该要想到利用双指针来解题。特别是链表类的题目,双指针是很重要的一环。总结一下,双指针常见的解题套路和常见的问题类型如下。1、快慢指针快慢指针类似于龟兔赛跑,两个链表上的指针从同一节点出发,其中一个指针前进速度是另一个指针的两倍。利用快慢指针可以用来解决如下的算法问题:计算链表的中点:快慢指针从

2021-05-11 14:50:28 278

原创 2021.5.11leetcode总结

1、两数之和思路:给定的是一个无序数组和一个target,所以直接暴力的采用两层for循环即可解决问题。但是需要注意的是,第二层for循环的开始位置为第一层for循环开始位置的下一位。最后取出两个值和target做判断即可。如果匹配成功,则返回两个值在数组中的下标(return {i,j})。如果没有匹配成功,则返回空的列表(return { })。注意:在C++ 11 中,return { } 意味着 { } 是返回值的初始值设定项,返回值是一个列表初始化的空列表。2、x的平方根思路:给定的是一个

2021-05-11 11:01:57 94

原创 ROS小车(2)

今天是2021年4月8日,前前后后一直瞎忙活,终于在晚饭后成功的在树莓派上安装好了Ubuntu系统。做个记录吧。

2021-04-10 15:30:19 504 1

原创 数据结构学习记录2021.4.10

数据结构学到这里,内容上基本上快要结束了。接下来就剩下两种排序算法了。那么除了前面的文章提到的插入排序和交换排序之外,剩下的两种排序算法是选择排序和归并排序。首先来说选择排序。选择排序的基本方法是:每一趟排序都在待排序序列中选择关键码最小的元素,顺序添加到已经排好序的有序序列的最后一位,重复上述过程,直到全部记录排序完毕。简单选择排序简单选择排序的基本思想是:第一趟在待排序记录r[1…n]中,选择最小的记录将它与r[1]交换;第二趟在待排序记录r[2…n]中,选择最小的记录将它与r[2]交换;以此

2021-04-10 14:49:51 117

原创 数据结构学习记录2021.4.9

书接上回。上回我们说到了二叉排序树的基本特性,那么根据二叉排序树的基本特性,可以容易得出其查找算法:若待查元素大于结点,则在其右子树上继续查找,反之,则在左子树上继续查找,知道找到或者结点的左(右)结点为空。在二叉排序树中插入新结点,只要保证插入后仍符合二叉排序树的定义即可。二叉树的插入过程为:若二叉排序树为空,则将元素插入为新的根结点,否则继续在其左子树或右子树上查找,直至某个结点的左子树或右子树为空为止,元素作为该结点的左孩子或右孩子插入。那么,和插入相反的是,删除是在查找成功之后才进行的,要求在

2021-04-09 10:32:40 601 1

原创 ROS小车(1)

今天是ROS小车想法实现的第一步,将手里的思岚雷达A1使用起来。首先是从思岚的GitHub仓库下载雷达的ROS包,下载zip然后解压或者直接使用git命令克隆下来即可。我本人在这里使用的是git。运行:git clone https://github.com/Slamtec/rplidar_ros.git这里需要注意一下clone的位置,最好是clone到ros工作空间下的src文件夹下面。当然也可以任意放置,clone完成后将其拷贝到src文件夹下面就好。然后就可以直接到工作空间下进行编译。

2021-04-07 16:31:24 658 1

原创 数据结构学习记录2021.4.2

书接上回。上回我们说到两种生成最小生成树的算法,普里姆算法和克鲁斯卡尔算法。普里姆(Prim)算法:首先任选图中的一点作为顶点,然后在该顶点的所有度中选择权值最小的度,将权值最小的度所连接的顶点纳入“包围圈”,然后从“包围圈”中的所有顶点的度中选择权值最小的度,将该度连接的顶点纳入“包围圈”。如此重复,直到所有的顶点都被包住,就找到了一棵最小生成树。总结来说就是:普里姆算法就是一个不断选取最小权值的边并把对应的顶点不断并入的过程。克鲁斯卡尔(Kruskal)算法:普里姆算法是从顶点的角度,通过一次增

2021-04-06 09:22:59 191

原创 Windows以管理员身份处理文件

今天在使用Dropbox的时候遇到了网络连接不上的问题,后来一查才发现是我们这边把Dropbox给封禁了…那咋整啊?我还需要下载东西啊所以在csdn一通搜索,发现需要在win下的一个hosts文件里面修改/添加hosts即可顺利访问Dropbox。(虽然后面证实了没有卵用…)那么就开始吧。顺着文件夹路径一直找到了需要修改的hosts文件,开开心心修改完成,结果不让我保存,只能选择另存为…我寻思我是管理员啊,给我个面子,让我保存了吧。结果还是不行。后来又是一通搜索,Windows如何以管理员身份打开文

2021-04-01 20:00:18 397 1

原创 数据结构学习记录2021.3.31

图结构线性结构中数据元素之间是一对一的关系;树结构中数据元素之间是一对多的关系;图结构中数据元素之间是多对多的关系。图有五种存储结构:邻接矩阵、邻接表、十字链表、邻接多重表和边集数组。其中最常用的两种存储结构是邻接矩阵和邻接表。1、图的定义图G由两个集合V、E组成,记为G = (V,E),其中V代表的是图中的顶点的集合,E代表顶点之间的关系。E可以是空集,表示该图只有顶点而没有边。两个顶点之间的连接方式有两种,一种是边,一种是弧。其中边是无向的,所以它构成的图被称为无向图。弧是有向的,所有由弧连接

2021-03-31 14:37:09 582

原创 数据结构学习记录2021.3.29

关于树的部分内容终于在今天基本上结束了,所以做一个对树的内容的相关纪录。就树的内容来讲,基本上二叉树是占大部头的,所以在这一部分内容主要掌握了二叉树基本上也算是掌握了精髓。话不多说,我们直接开始。二叉树:每个结点最多含有两个子树的树。二叉树又分为满二叉树和完全二叉树。当然还有一类特殊的二叉树:正则二叉树。满二叉树:所有的叶子结点都位于最后一层,且最后一层除外的所有其他结点的度数均为2。也就是说,所有除了叶子结点外的结点都拥有左右两个子树。完全二叉树:扣除最后那一层后就是一棵满二叉树,且最后一层的

2021-03-29 15:02:27 706

原创 数据结构学习记录2021.3.25

栈、队列和串的学习直接上干货:栈和队列被认为是操作受限的线性表,因为栈的插入和删除操作只能在表尾进行,队列的插入只能在表尾进行,而删除只能在表头。串是一种以字符作为数据元素的线性表,有时也被称为字符串。tips:栈中允许插入和删除的一端称为栈顶。栈的基本运算有:1、置空栈SetNull(S):将栈S置为空栈2、入栈Push(S, x): 将元素x插入到栈S的栈顶3、出栈Pop(S): 删除栈S的栈顶元素4、取栈顶元素GetTop(S):返回栈S的栈顶元素,栈顶元素不出栈5、判栈空Empty

2021-03-26 10:43:58 241

原创 数据结构学习记录2021.3.24

算法+数据结构=程序,这句话来源于图灵奖获得者瑞士计算机科学家尼古拉斯·沃斯。生动形象的揭示了程序设计和算法以及数据结构的关系。那么,什么是算法、数据结构和程序呢?简而言之:1、算法:算法就是对于解决特定问题的求解过程中的方法描述。也就是说,算法告诉我们,怎么去解决这个问题。2、数据结构:通常来讲,数据结构包括了逻辑结构、存储结构以及对数据的相应操作三种关系。也就是说,数据结构解释了“具有一定逻辑关系的数据在计算机中的存储表达,并支持相应的数据操作”。逻辑结构:按照逻辑关系组织起来一批数据存储结构

2021-03-25 10:43:47 139

原创 沙盘ROS机器人调试使用记录

1、首先安装openssh_server以及filezilla使用命令:sudo apt-get install openssh-serversudo apt-get install filezilla2、使用ifconfig查看自己的IP地址(我的地址为192.168.10.21)3、树莓派地址为:192.168.10.354、修改ROS节点,使得我们的ubuntu作为主机,ROS机器人作为从机。打开bash文件:sudo gedit ~/.bashrc然后在最后面添加:export R

2021-01-06 09:14:57 873 1

原创 各种小问题及解决办法

python 使用 ./xxxx 运行python脚本,需要赋予权限:chmod +x xxxx;然后在python代码前需要添加如下代码:#!/usr/bin/python (否则会报错:附近有语法错误!)

2020-10-12 17:11:40 261

原创 使用ffmpeg对视频进行处理

首先进入到图像文件夹然后输入:ffmpeg -f image2 -i %*.jpg 123.mp4这样就可以将所有 .jpg 格式的图像合成为一个名叫 123.mp4 的视频

2020-10-12 15:53:32 431

原创 Ultra Fast Structure-aware Deep Lane Detection (ECCV2020)的复现

首先感谢作者的开源代码以及模型。作者知乎论文指路:https://zhuanlan.zhihu.com/p/157530787作者代码指路:https://github.com/cfzd/Ultra-Fast-Lane-Detection接下来是复现的过程以及其中遇到的坑。基础的nvidia显卡安装、CUDA安装、cuDNN安装这里不进行赘述。复现的环境以及数据准备在作者的github仓库里写的很完整,按照步骤来就好。需要注意一下的是第四步数据集的准备。在工程文件夹中新建一个叫做CULANROO

2020-10-10 14:12:18 2746 11

原创 ROS安装踩坑解决指南

目前在安装ROS中,遇到了如下两个问题:一、sudo rosdep init 遇到无法下载默认资源。错误显示如下:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.二、rosdep update 遇到下载超时问题。错误即Tim

2020-09-15 21:06:33 2370 12

原创 Ubuntu完全配置指南:

分区:(此处我们分256G的空间给Ubuntu)主分区 起始位置 ext4 挂载点:/大小:51200逻辑分区 起始位置 交换空间大小:16384逻辑分区 起始位置 ext4 挂载点:/boot大小:2048逻辑分区 起始位置 ext4 挂载点:/home大小:剩余全部启动盘符:/boot所在盘符最后进BIOS是Ubuntu优先启动。无法连接WiFi解决方法(联...

2019-09-06 15:52:40 511

原创 Ubuntu16.04(GTX1660ti)cuda10.0和cudnn7.6环境配置 (环境乃一生之敌!!!)

Ubuntu16.04(GTX1660ti)cuda10.0和cudnn7.6环境配置(环境乃一生之敌!!!)1.下载显卡驱动,到https://www.nvidia.com/Download/index.aspx下载相应的驱动。(相应驱动指的是和你的计算机所匹配的驱动,可在win下使用DxDiag查看)2.查看cuda和驱动版本要求:https://docs.nvidia.com/cud...

2019-09-05 17:04:17 6753 4

空空如也

空空如也

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

TA关注的人

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