自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020.08.10 有必要说一下std::move操作,记字节一面凉经

源于昨日的字节面试:面试官问,你了解move操作吗?我:了解,balabala。然后面试官点了点头,继续下一个问题,直到快结束的时候,问unique_str智能指针,禁止拷贝,那我需要怎么把unique_str传递给另外一个unique_str. 我:可以先解引用,然后创建一个新的unique_str,原来的删除就好了。面试官说:还有别的吗?move可以吗;当时的我,一愣一愣的,说明我没有把move掌握到家。我一开始回答的操作跟拷贝构造函数的操作其中就是那样,多了一个开辟内存等消耗,而如果使用move的

2020-08-10 09:47:43 284

原创 2020.05.30C++:多种继承

1.多重继承-菱形继承类 A 派生出类 B 和类 C,类 D 继承自类 B 和类 C,这个时候类 A 中的成员变量和成员函数继承到类 D 中变成了两份,一份来自 A-->B-->D 这条路径,另一份来自 A-->C-->D 这条路径。在一个派生类中保留间接基类的多份同名成员,虽然可以在不同的成员变量中分别存放不同的数据,但大多数情况下这是多余的:因为保留多份成员变量不仅占用较多的存储空间,还容易产生命名冲突。假如类 A 有一个成员变量 a,那么在类 D 中直接访问 a 就

2020-05-30 10:09:31 189

原创 2020.05.15之算法:前缀树

问题:在百度或大型网站,你输入“中国”出现“中国制造”,“中国创造”,好多以”中国“为前缀的字符串前阵子JPG跟ZPG聊到了这个问题,当时懵逼ing,啥事前缀树,今日学到了便来一个总结前缀树顾名思义要的就是前缀接下去就是代码怎么来实现一颗前缀树;#include <iostream>#include <string>using namespace std;struct TrieNode { int path; int end; struct Tri

2020-05-15 17:06:00 186

原创 2020.05.11:C++线程池

线程池的作用,主要是用来存放一些线程,不用经常打开关闭,然后处理一个工作队列的里面的任务的问题主要应用:日志log的设计设计线程池其实就是相当于设计一个生产者与消费者模型1.生产者负责生产任务2.消费者负责完成任务因此需要进行一个PV操作,此时的信号量使用条件变量来代替首先需要设计一个任务队列,一个执行队列,一个管理模型任务队列typedef struct NJOB { void (*job_function)(struct NJOB *job); void *use

2020-05-11 09:50:40 169

原创 2020.05.08之算法:二叉树基础代码的练习

三种遍历,求后驱与前驱,判断二叉搜索树,判断二叉平衡树,判断完全二叉树,求完全二叉树的个数#include <iostream>#include <vector>#include <stack>#include <math.h>#include <algorithm>#include <queue>using namespace std;struct Node{ Node *left=NULL; Node *r

2020-05-08 22:09:23 128 1

原创 2020.05.03.C++比较器

第一种方式:函数比较器写一个比较器:bool cmp(const student& a,const student& b) { if (a.id > b.id) { return false; } else { return true; }}bool cmp_up_age(student& a, student& b) { ...

2020-05-03 15:33:21 1010

原创 2020.04.30计算机网络:浏览器中输入一个URL发生什么,用到哪些协议?

浏览器从输入一个URL到显示到浏览器一个页面全程经历了什么?1.当输入一个URL的时候,则此时需要获得服务器一个IP地址,因此需要进行DNS查询DNS分为迭代查询,还有递归查询;DNS协议由于DNS服务器使用的UDP协议,所以期间会使用UDP协议2.获得IP地址后,需要与服务器进行建立连接,进行HTTP连接,因此需要一个HTTP协议3.http会生成一个请求报文,传给一个TCP...

2020-04-30 10:02:52 698

原创 2020.04.26.算法:前中与中后重构二叉树

由于志鹏哥百度面试的时候被问到了这个问题了,所以还是觉得撕一波代码的。先来个前+中,中+后的,额,前+后还没考虑。在重构二叉树上,一般会有两种询问方式;1.这两个遍历可以重构吗?2.重构的过程;解答:1.关于由遍历重构二叉树,因为中序遍历的根节点的左边是左子树,而右边是右子树。同时若是问的二叉搜索树,那么中序可以说就是一个排序了。而前序遍历的话,根节点就是首个。而后序遍历的根节点则...

2020-04-26 17:34:12 117

原创 2020.04.25算法:LRU的实现

在如今的项目开发中,缓存是一种必不可少的存储方式,目前在各种后台开发中,比较常见的一种缓存算法就是LRU了,LRU名为最近最少使用算法。它会将最近不常用的缓存数据淘汰掉,是一种Cache替换算法。常见的缓存算法LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。 LFU (Least frequently used) 最不经...

2020-04-25 11:36:10 112

原创 2020.04.25.C++:关于string的自我实现

#define _CRT_SECURE_NO_WARNINGS#include <string>#include <iostream>using namespace std;class Mystr {public: Mystr():data_S(new char[1]) { *data_S = '\0'; } Mystr(const Mystr&amp...

2020-04-25 09:59:58 141

原创 2020.04.23之C++篇:1.STL的deque与vector的区别

STL广义上分为1.std::deque的底层机制deque由动态地分段连续空间组合而成,随时可以增加一段新的连续空间并链接起来,不提供空间保留功能,deque采用一块map(不是map容器)作为主控,其为一小块连续空间,其中每个元素都是指针,指向另一段较大的连续空间(操作系统的页表的思想)如下图所示2.deque与vector的区别vector是单向开口的连续线性空...

2020-04-23 17:46:53 577

原创 2020.4.20之算法系列:1.快速排序的思想

10(0) 5(1) 6(2) 84(3) 55(4) 1(5) 5(6) 22(7) 48(8) 20(9) 利用第一个数作为基准值,temp = 10;high--;直到arr...

2020-04-23 17:26:54 146

原创 回归继续博客

由于之前因为个人原因,停更了博客一个月,对此表示很惭愧,立下flag,从今日开始;每日必更:算法题套路 一条C++常见面试题 一条操作系统,计算机网络 一条...

2020-04-23 17:14:11 108

原创 关于const与指针的那些事

const int *p;int const *p;指向int型常量的指针不可以改变内容可以改变指向变量int * const p;指向int型的常量指针;可以改变内容不可以修改指向变量const int * const p;int const * const p;指向int型常量的常量指针;都不可以改变...

2020-03-18 22:15:18 83

原创 关于指针数组与数组指针的那些小事情

什么是指针数组?什么是数组指针?简单的回答就是指针数组就是存的都是指针,而数组指针就是一个指针而已定义方式:(优先级:()>[]>*)指针数组 int *p[4]; 数组指针 int (*p)[4]我们平时定义数组的时候是这样int *p = a[4];这就是指向一个一维数组的指针的头,*p++就是取出下一位的数组的存放值,p存放的就是数组的头指针的地址那么...

2020-03-18 22:08:58 138

原创 C++之复制构造函数

1.默认复制构造函数如果无定义的情况下,则会默认调用默认的复制构造函数2.自定义的复制构造函数参数列表 const & 或者 是&如果没有用const的话 无法确保会不会改变实参的值为什么呢?来看下引用,什么是引用?引用是一种变量类型,即定义一个变量为变量的引用;int a;int &r = a;a和r表示同个变量,也是同个地址的...

2020-03-14 15:06:52 242

原创 C++容易忘记的知识点-第二篇(多态)

(小声嘀咕:自我感觉,多态比封装还有继承稍微复杂一丢丢)正式开始多态:指的具有不同功能的函数可以使用同一个函数名,这样就可以用一个函数名,调用不同的内容的函数这里就不得不提一下虚函数虚函数:虚函数的作用就是允许派生类中对基类的虚函数进行重新定义,显然,它只能用于类的继承层次结构中。当一个类带有虚函数时,编译系统会为该类构造一个虚函数表,它是一个指针数组,用于存放每个虚函数的入...

2020-03-14 14:34:14 85

原创 C++容易忘记的知识点-第一篇

1.类是抽象的,不占用空间;对象是实例,所以是占用空间的。2.结构体和类的不同之处?实际上两者只有关键字不同,与默认的成员的访问权限不同而已,同时在C++的结构体中,可以定义成员函数;小细节:struct在定义完一个类型之后,需要在最后加上;,而class不需要。3.关于成员函数的注意点成员函数与一般函数的区别,属于类的成员,出现在类体中(private,protected,pub...

2020-03-14 13:01:29 151

原创 56. 合并区间

思路:先考虑,在所有排序的情况下进行写代码,再考虑没有排序的情况下进行排序下class Solution {public: vector<vector<int>> merge(vector<vector<int>>& intervals) { //这个题目不一定是有序的,所以如果要按照有序方法进行的话,需要...

2020-03-14 11:27:08 129

原创 53. 最大子序和

思路:这个题目,如果取出所有的子数组的组合的话,再求一个最大值的话,这样的算法是比较花时间的,所以需要观察规律。-2<0,如果以其开头去加后面的数,肯定是小的,所以开头是要是整数的,因此 1-3=-2,这样,-2<1,也就是数值在变小,同时小于0,加上后面的数值也就是相当于负数开始相加一样,因此不可以;所以从4开始,4-1=3>0,加上后面的值可能会变大的,所以继续加,3+2...

2020-03-13 21:59:34 81

原创 49. 字母异位词分组

思路:这个题目,肯定不能拿一个字符串求全排列,接着查找存在全排列的里面的字符串,这种方法是可以解出来,但是需要对不相同的字符串进行求全排列,那这里可以做两道题了。首先要查找这里面的规律,由于字母是一样的,所以就从分析每个字符串的字符的所属就好了,故可以用hash的方法,也就是记录字符与对应的字符串;另外一种解法就是对所有字符串进行顺序排列,如果相同的就是属于题目的要求的字符串1.顺序排序:...

2020-03-13 01:45:24 104

原创 62. 不同路径

这道题目,典型的递归题,主要是要确定路径,什么时候算一条路径?也就递归基是什么,就是当边界是1的时候,算一条路径,那么就(m,n)开始分起,也就是到(m,n)的时候会有多少路径,从(m-1,n)还有(m,n-1)的路径和,依次类推,因此也可以用动态规划;如果用递归的话,有很多小的计算路径,一直在重复,因此消耗的时间效率很高。动态规划的分析,按照递归的思路逆着来,从头开始,每次都是从上方还有...

2020-03-13 00:38:02 154

原创 48. 旋转图像

解题思路:就是顺着来一遍,交换一下数字;学习的C++内容:vector的个数,还有就是如何做到顺时针转换一圈class Solution {public: void rotate(vector<vector<int>>& matrix) { if(matrix.size()==0&&matrix.size()!...

2020-03-11 23:05:14 68

原创 关于C++的对象的存储空间

C++对象的存储空间由非静态成员变量总和还有编译器为了CPU计算做出的数据对齐处理和支持虚函数所产生的负担的总和所决定的。1.空类的情况下的空间大小?#include <iostream>using namespace std;class Box{};int main(){ Box boxObj; cout<<sizeof(boxObj)&...

2020-03-11 11:06:13 1628

原创 46. 全排列

给定一个没有重复数字的序列,返回其所有可能的全排列。这道题目可以采用回溯法,可以绘制图如下,套用labuladong大神的图;class Solution {public: vector<int> path; vector<vector<int>> pathRes; vector<vector<int&gt...

2020-03-10 23:55:00 104

原创 39. 组合总和

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。解题思路:...

2020-03-10 19:08:41 99

原创 121. 买卖股票的最佳时机

题目:给定一个数组,它的i个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。note:利润不能是...

2020-03-10 15:53:14 68

原创 操作系统的一些基础知识

什么是进程?什么是线程?线程与进程有什么关系?进程就是系统进行资源分配的最小单位,一个程序的运行就需要一个进程,每个进程的内存都是相互独立,每个程序在运行的时候,才不会讲指针指向另外一个进程,而导致信息泄露;线程就是系统进行运算调度,资源调度的最小单位,一个程序的里面的多个功能的运行就需要线程;线程才是我们操作系统所真正去运行的,而进程呢,则是像容器一样他把需要的一些东西放在了一起,而把不...

2020-03-10 11:51:20 182

原创 leetcode 33. 搜索旋转排序数组

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。由于进行了旋转,所以数组的第一个数是永远比最后一个数大的。因...

2020-03-09 22:50:31 61

原创 一个计算机视觉爱好者学习之路--CNN

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一;个人理解:卷积神经网络相较之神经网络,最主要不同之处在于卷积层,卷积层(若是学过信号与系统的孩子可能理解起来就会简单很多)在图像里面,将原图像通过与一...

2019-03-30 23:10:58 376

原创 带你走进html

html是超文本标记语言,主要是做网页,可以在网页上面显示文字,声音,图像,视频等等(只能做静态网页)(动态网页不是说图片在动之类的(动态网页可以用php/jsp.....)动态:比如浏览器,我要发博客 像我现在输入的这个方框下面有一个按钮。比如我在内容里面写了这么多之后呢,我要点击发表,然后要跟后台进行交互!(也就是http协议))input就是标记C语言的就

2016-06-24 10:23:42 339 1

原创 关于linux下面安装psutil

有的时候安装目录是一件非常蛋疼的事情对于刚学习linux的初学者来说的话;闲话不多说,我就先用psutil来教大家怎么安装python安装第三方库;首先你的linux上面要有一个python还有一个第三方库;本来对于linux 都是自带python 你们可以ctrl+T打开命令行 然后输入 python查看下是否自带python 如果没有就去python下载一个然后安装http

2016-04-09 10:58:23 7676

空空如也

空空如也

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

TA关注的人

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