自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划和题目总结

https://blog.csdn.net/qq_19446965/article/details/81331187持续更新1    动态规划背包问题 https://blog.csdn.net/qq_36303472/article/details/689359542    0-1背包:https://www.cnblogs.com/lfeng1205/p/5981198.html...

2018-08-01 14:30:05 201

原创 leetcode5最长回文子

在网上找了很多相关算法,一直想证明自己的思路有没有问题,但是leetcode提交时没找到错误,细节上有问题,思路:?1234567891011121314151617181920212223242526272829303132既然是最大连续的回文字符串,那么我可以这样构成dp的状态方程,以string[i]为结尾的最长连续会问字符串dp[i],当然会有这么一个maxlen=max{maxlen,d...

2018-07-14 17:54:51 149

转载 交换机原理

交换机虚拟VLAN划分VLAN基本原理:之所以划分VLAN是为了阻止广播风暴的产生,我们知道在下图二层连接中,广播帧会在广播域中传播,会导致广播帧占用带宽,降低性能,我们想一个广播帧只在一个特定的广播域中传播。当然使用路由器作为隔绝广播帧的传递是其中的一种方法。因为广播帧属于第二层,不会通过路由器跨越第三层,但由于路由器是三层设备,对数据的转发容易形成瓶颈,所以一般我们使用VLAN来隔离广播域如何使用VLAN划分广播域:使用交换机端口划分VLAN,顾名思义,将交换机的几个端口划分到一个VLA

2021-05-17 18:35:13 1442

转载 Visual Studio主题与配色方案

Visual Studio主题与配色方案有个性的开发人员总是喜欢使用属于的主题和配色方案,它们可以看出开发者的个性,更改它们可以缓解审美疲劳,总之选择一个适合自己的解决方案可能极大的增加自己的编码舒适度。配色方案的选择和使用手动修改Visual Studio字体和颜色来现实属于自己的配色实在是太麻烦,我也不推荐大家使用 这样的方式,我给大家推荐几个常用的配色方案:上面总有一款适合自己的配色方案,需要下载的朋友可以到StudioStyle去下载自己喜欢的配色方案。下载...

2021-01-22 11:53:50 7089

转载 几个超级实用但很少人知道的 Visual Studio 技巧

原文:几个超级实用但很少人知道的 Visual Studio 技巧PS:本文所有示例演示均基于 Visual Studio 2019 v16.7.4 版本。1. 扩展/缩小选区通过双击选中整个单词,这个操作大家应该都知道。但如何快速选择几个单词、或多个单词的字符串、或代码块呢?教大家一个快捷键,如何快速扩展选择代码区域。例如,当光标在一个字符串中时,使用下面的快捷键就可以选择整个字符串。按Alt+Shift+=扩展选区,按Alt+Shift+-缩小选区:你也可...

2021-01-22 10:49:42 1167

转载 Cache的基本原理

Cache的基本原理对于没有接触过底层技术的朋友来说,或许从未听说过cache。毕竟cache的存在对程序员来说是透明的。在接触cache之前,先为你准备段code分析。int arr[10][128];for (i = 0; i < 10; i++) for (j = 0; j < 128; j++) arr[i][j] = 1;如果你曾经学习过C/C++语言,这段code自然不会陌生。如此简单的将arr数组所有元素置1。 你有

2021-01-07 12:48:19 827

原创 每日反馈

Block1Source:一道腾讯面试题目:没有listen,能否建立TCP连接Q---连接的建立是由内核完成的,系统调用listen,就是为了告诉内核,它要处理发给这个TCP端口的连接请求?A---第一种解决办法:绕过传输层,由应用层直接处理,发送给客户端SYN+ACK.同时在reinject时通知内核该数据包被“偷”了,即NF_STOLEN,这样内核就不会发送中断消息。第二种方法:由客户端的无listen状态联想,第一种方法中由于没有listen,也就没有listen套接字,只有原.

2020-12-09 15:51:26 169

原创 面试题

1.如果一个类中存在一个成员变量是指针类型,你要注意什么答:浅拷贝和深拷贝2.浅拷贝会引起啥问题答:拷贝的指针指向同一块内存空间,一个释放之后,另一个再释放,就会释放已经释放的空间吧[‎2020/‎10/‎14 10:14] 钱师哲:嗯嗯是的那有什么方法可以规避这个浅拷贝的问题呢[‎2020/‎10/‎14 10:15] 王猛28:智能指针么[‎2020/‎10/‎14 10:15] 是的,厉害的还有吗[‎2020/...

2020-10-14 10:43:27 103

转载 windows笔记

windows笔记-【内核对象线程同步】等待函数

2020-09-23 20:43:51 69

转载 C++高阶知识:深入分析移动构造函数及其原理

C++高阶知识:深入分析移动构造函数及其原理

2020-07-20 14:39:59 386

转载 TCP的硬核知识

近两万字 TCP 硬核知识,教你吊打面试官!

2020-07-13 19:33:22 162 1

原创 const_cast所造成的同地址不同值

首先理解const_cast的使用方式和场景C++标准转换运算符const_cast其次理解在使用const_cast造成的同一个地址确存在两种不同的值的原因如:intmain(){constintn=100;int*p=const_cast<int*>(&n);*p=234;cout<<"n = "<<n<<endl;cout<<"*p = "<<*p<<e...

2020-07-13 17:23:15 496

转载 虚函数可以是内联函数吗?

虚函数可以是内联函数吗?

2020-07-10 10:29:07 232

原创 leetcode刷题精讲地址

https://github.com/azl397985856/leetcode/tree/master/problems大家都是如何刷 LeetCode 的? :https://www.zhihu.com/question/280279208/answer/510354868https://github.com/MisterBooo/LeetCodeAnimation...

2020-01-03 10:42:35 263

原创 真正能够区分流量控制和拥塞控制区别+原理

四篇关于流量控制,拥塞控制,滑动窗口,拥塞窗口的参考文章,可以详细阅读,当然在原理方面可能还达不到深入理解的水平,但是对上面试官吹吹水还是没问题的TCP 滑动窗口和 拥塞窗口TCP/IP(十一)TCP滑动窗口和拥塞控制TCP滑动窗口协议及拥塞控制TCP机制下为什么要同时拥有滑动窗口和拥塞控制窗口?一、Flow Control 的机制写在开头:纯属自己看完的感悟,若是不理解...

2018-09-12 23:11:16 5241 2

转载 如何去掉CSDN的广告

 本人的强迫症非常严重,CSDN里的资料很多,文章排版也好看。唯一点不好的就广告烦人,还一闪一闪的非常惹眼。如果你跟我一样也是Chrome的浏览器,可以试试以下方法:打开链接 https://github.com/XiaoHanChina/Google-Extensions 页面。 找到 adBlock_v.crx 文件并下载。 打开 Chrome浏览器 ,依次打开:3个竖着的小点(地...

2018-09-12 16:48:56 330

转载 内存泄漏

转自:http://blog.csdn.net/lovely20085901/article/details/39050085 1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存;二是在类的构造函数中动态的分配了内存,但是在析构函数中没有释放内存或者没有正确的释放内存2...

2018-09-12 01:56:57 150

原创 拷贝构造函数的参数为什么必须使用引用类型

https://blog.csdn.net/tunsanty/article/details/4264738  在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,我的第一感觉也是这么回答。不好还好,我有理...

2018-09-11 09:57:49 200

转载 C++中关于public、protect、private的访问权限控制

原:C++中关于public、protect、private的访问权限控制一:成员的访问权限1: public访问权限    一个类的public成员变量、成员函数,可以通过类的成员函数、类的实例变量进行访问   &lt;实际上,类的成员函数,可以访问本类内的任何成员变量和成员函数&gt;   #include&lt;iostream&gt;#include&lt;s...

2018-09-08 22:55:02 382

转载 在浏览器地址栏输入一个URL后回车,执行的全部过程

https://www.zhihu.com/question/34873227在浏览器中输入www.baidu.com后执行的全部过程从一道百度面试题到分析输入url到页面返回的过程(或者查询返回过程) 在浏览器中输入www.baidu.com后执行的全部过程作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,H...

2018-09-07 19:32:20 3372

转载 STL分配器

 转自:STL六大组件之——分配器(内存分配,好深奥的东西)          STL的内存分配器        STL六大组件SGI设计了双层级配置器,第一级配置器直接使用malloc()和free(),第二级配置器则视情况采用不同的策略:当配置区块超过128bytes时,视之为“足够大”,便调用第一级配置器;当配置区小于128bytes时,视之为“过小”,为了降低额外负担,便采...

2018-09-07 15:58:40 237

转载 虚拟地址空间映射到物理地址空间

虚拟地址空间映射到物理地址空间参考如下  当处理器读或写入内存位置时,它会使用虚拟地址。作为读或写操作的一部分,处理器将虚拟地址转换为物理地址。通过虚拟地址访问内存有以下优势:  程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。  程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB...

2018-09-07 09:06:45 3064

转载 Linux进程间通信——使用共享内存

一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到...

2018-09-05 10:36:10 1812

转载 你真的会写二分查找吗

你真的会写二分查找吗1 二分查找  二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。(图片来自《算法-第4版》)/** * 二分查找,找到该值在数组中的下标,否则为-1 */static int binaryS...

2018-08-28 16:14:36 123

转载 Java线程池架构:原理和源码解析

源:http://ifeve.com/java-threadpoolexecutor/Java线程池架构(一)原理和源码解析在前面介绍JUC的文章中,提到了关于线程池Execotors的创建介绍,在文章:《java之JUC系列-外部Tools》中第一部分有详细的说明,请参阅;文章中其实说明了外部的使用方式,但是没有说内部是如何实现的,为了加深对实现的理解,在使用中可以放心,我们这里将做...

2018-08-28 01:32:46 117

原创 指针数组和数组指针

   1 2 3 4 举例来说:int ** a[3][4],优先级:[] &gt; * 所以,首先是 a[3][4],它是个二维数组,共12个元素; 接下来是int **,也就是二维数组中元素的类型,即:指向指针的指针。 最后,因为是32位系统,所以地址都是4字节。所以共需要 12 * 4 = 48 个字节。...

2018-08-27 13:04:13 96

原创 LeetCode 547. Friend Circles 合并集

There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is a direct friend of B, and B is a direct friend of C, then ...

2018-08-26 22:28:00 117

转载 智能指针 auto_ptr、scoped_ptr、shared_ptr、weak_ptr

智能指针 auto_ptr、scoped_ptr、shared_ptr、weak_ptr  什么是RAII?RAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法。RAII又叫做资源分配即初始化,即:定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证...

2018-08-26 10:46:22 379

转载 Socket网络编程

目录 1 网络模型1.1 IP地址与域名1.2 端口的概念1.3 网络模型图2 Socket入门2.1 什么是Socket2.2 TCP和UDP区别2.3 UDP协议样例2.4 TCP2.4.1 TCP报文格式2.4.2 TCP三次握手2.4.3 四次挥手2.4.4 三次握手和四次挥手面试问题2.4.5TCP的滑动窗口机制2.4.6 ...

2018-08-25 17:11:11 353

原创 TCP/IP 面试题整理

TCP/IP协议的工作流程如下: ●在源主机上,应用层将一串应用数据流传送给传输层。 ●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。 ●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。 ●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧...

2018-08-24 14:40:01 19252

原创 析构函数为什么是虚函数而构造函数不行

为什么构造函数不能为虚函数1,从存储空间角度    虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度        虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的...

2018-08-24 13:38:52 293

转载 TCP报文格式详解

CP报文是TCP层传输的数据单元,也叫报文段。1、端口号:用来标识同一台计算机的不同的应用进程。1)源端口:源端口和IP地址的作用是标识报文的返回地址。2)目的端口:端口指明接收方计算机上的应用程序接口。TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。2、序号和确认号:是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字...

2018-08-22 15:04:03 320

转载 Socket通信原理

吴秦(Tyler) Linux Socket编程(不限Linux): http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html  揭开Socket编程的面纱  http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx Socket通信原理      Sock...

2018-08-21 10:13:12 227

转载 TCP和UDP区别和优缺点

UDP协议UDP:User Datagram Protocol,用户数据报协议.主要作用:将网络数据压缩成数据包的形式。数据包:一个二进制数据的传输单位工作机制:蛮干型。它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。因此,在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用...

2018-08-20 22:56:31 2502

原创 eetcode题解(10): Regular Expression Matching——DP解决正则匹配

两个参考:http://xiaohuiliucuriosity.blogspot.com/2014/12/regular-expression-matching.htmlhttps://www.youtube.com/watch?v=l3hda49XcDE&amp;list=PLrmLmBdmIlpuE5GEMDXWf0PWbBD9Ga1lO问题Implement regular ...

2018-08-20 22:22:28 434

原创 LeetCode234_PalindromeLinkedList (判断是否为回文链表)c++

思路一:最容易想到的,把遍历过得结点放进栈中,然后利用栈的后进先出的特性逐个和原链表比较是否相同class Solution {public: bool isPalindrome(ListNode* head) { stack&lt;ListNode*&gt;stack; ListNode *p=head; if...

2018-08-20 22:17:01 652

转载 LeetCodeBug-member access within null pointer of type 'struct ListNode

转:https://blog.csdn.net/zy2317878/article/details/79115498写在前面这个BUG是我在做LeetCode的链表一类题目的时候遇到的,觉得还是蛮有代表性的,因为刚开始遇到这个BUG,我完全不知道哪里有问题,还与正确答案反复对比,结果发现完全一样,但我的就报错,后来发现原来是这个知识点完全没有接触过,所以就通过这篇博客来记录一下自己犯得错误...

2018-08-20 12:50:17 3321

转载 用两个栈实现一个队列,用两个队列实现一个栈

问题1:用两个栈实现一个队列 问题描述及分析: 用两个栈实现一个队列。分别完成在队列尾部插入节点AppendTail和在队列头部删除节点DeleteHead的功能。 栈的特点是先进后出(FILO),而队列的特点是先进先出(FIFO),因此,尾部插入节点相当于入栈操作,很容易实现。但是头部删除节点比较麻烦,我们始终用stack1存储元素,用stack2作为临时空间来导出数据。当stack2为空...

2018-08-19 22:40:34 591

转载 堆排序

出处:http://www.cnblogs.com/skywang12345/p/3602162.html 堆排序 概要本章介绍排序算法中的堆排序。目录1. 堆排序介绍2. 堆排序图文说明3. 堆排序的时间复杂度和稳定性4. 堆排序实现4.1 堆排序C实现4.2 堆排序C++实现4.3 堆排序Java实现堆排序介绍堆排序(Heap Sort)是指利用堆这种...

2018-08-19 18:37:39 1071

转载 对象锁/类锁

对象锁(方法锁),是针对一个对象的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁,所有它只会锁住当前的对象,一般一个对象锁是对一个非静态成员变量进行synchronized修饰,或者对一个非静态成员方法进行synchronized进行修饰,对于对象锁,不同对象访问同一个被synchronized修饰的方法的时候不会阻塞类锁是锁住整个类,当有多个线程来声明这个类的对象时候将会被阻塞,直...

2018-08-19 16:27:20 270

空空如也

空空如也

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

TA关注的人

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