自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (1)
  • 收藏
  • 关注

原创 面试整理那些事儿

我写的验证实例:#include<iostream>#include <string.h>#include <vector>using namespace std;int main(){ char a[5]={1,2}; cout<<sizeof(a)<<endl; cout<<strlen(a)<<endl; cout<<"--...

2022-05-12 11:57:35 92

原创 二叉树的递归之路(全)

空谈比较抽象,下面我们就对具体题目进行分析以及代码呈现100. 相同的树相同的树:比较两棵树是否相同特殊判断:如果两棵树都是空树那么必然相同;如果两棵树其中只有一棵树为空树那么必不相同返回值:两棵树都非空+根节点值相同+左子树相同+右子树相同c++代码如下:bool isSameTree(TreeNode*p, TreeNode*q){ if (!p && !q) return true; return p && q &amp...

2022-05-10 19:46:38 159

原创 八大排序的那些事儿

1.排序-冒泡算法讲算法太空洞,直接上实例:上实例中,当后面的都已经排序好的时候其实是不需要交换的,所以就会终止循环。利用递归的方式写冒泡排序:2.选择排序选择排序和冒泡排序有一点点像,选择排序是默认前面都是已经排序好的,然后从后面 选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然 后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第一个元素是已经 排序好的,然后从剩下的找出最小的放到数组的第二个位置,第三轮循环的时候默认前 两个都是已...

2022-05-09 16:15:14 313

原创 IO多路复用

Linux 用 select/poll/epoll 函数实现 IO 复用模型,这些函数也会使进程阻塞,但是和阻塞IO所不同的是 这些函数可以同时阻塞多个IO操作。而且可以同时对多个读操作、写操作的IO函数进行检测。直到有数 据可读或可写时,才真正调用IO操作函数。select/poll:本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。 select最大的缺陷就是单个进程所打开的FD是有一定限制的,它由FD_SETSIZE设置,默认值是1024。 对socket进行扫

2022-04-29 15:06:05 121

原创 Linux 高并发的实现, 线程池的实现思想, 怎样处理高并发

Linux 高并发的实现内核TCP参数方面Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口。当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源。这个时候我们可以优化TCP的内核参数,来及时将TIME_WAIT状态的端口清理掉,让系统更快的释放TIME_WAIT连接。IO事件分配机制在Linux启用高并发TCP连接,必须确认应用程序是否使用了合适的网络I/O技术和I/O事件分派机制。

2022-04-26 19:57:31 430

原创 传输层的TCP与UDP总结

TCPTCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP是面向面向字节流,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。UDPUDP 是面向报文的,所谓面向报文,是指面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发

2022-04-26 19:37:04 85

原创 如何求字符串的next数组

求串′ababaaababaa′的next数组模式串 a b a b a a a b a b a a 下标 1 2 3 4 5 6 7 8 9 10 11 12 next[1] = 0next[2] = 1(这两个值是约定的)next[3]: "ab"没有相同的前缀和后缀,所以模式串又得从头开始匹配,因此next[3] = 1next

2022-03-24 17:44:16 6426

原创 关于没有哨兵节点导致报错这件事

今天遇到一个关于哨兵节点的问题,废话不多说直接上图;当不使用哨兵节点,只是单纯的在原有链表上进行删除倒数第n个节点的操作时。出现以上报错。并且在十几分钟内依然困住了我。由于上一篇刷题的经验告诉我,这次的问题估计出在使用空指针不当的情况,也就是说判断的情况不仔细清楚。因此我特意去增加了对fast指针指向下一处位置的目标进行非空判断。问题依然存在。解决问题的关键在于对链表边界的模糊,使得编译器不能确定导致的报错。修改如下:class Solution {public:ListNode* re

2022-03-17 11:53:41 883

原创 runtime error: member access within null pointer of type ‘TreeNode‘ (solution.cpp)

在做Leetcode题的时候,我做到了一个关于对称二叉树题目,题目如下:经过编译得出的结果如下:第14行代码发生了报错经过我的查找资料和修改发现,在某行访问的指针为空的时候,通常情况下表明程序未对NULL情况做出判断,因此程序出现运行错误。修改如下:classSolution{public:boolisMirror(TreeNode*p,TreeNode*q){if(!p&&!q){returntrue;}...

2022-03-16 09:17:57 8740

原创 二叉树的递归之路(bool类型)

这类型的二叉树主要分为两个类型:1.不需要构建辅助函数 2.需要构建辅助函数光是谈理论有点空洞,我归纳了以下几个题目作为日后参考:题1 相同的树条件:判断两个树是否相同判断依据:如果两棵树都是空树,必然相同;如果其中有一棵树不为空,那么必不相同判断标准:两棵树都非空&&根节点相同&&左子树相同&&右子树相同c++:bool isSametree(TreeNode*p, TreeNode*q){if(!p&&!q)

2022-03-15 21:29:07 832

空空如也

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

TA关注的人

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