240 发简信
IP属地:北京
  • 闭包

    内层函数引用了外层函数的变量,然后返回内层函数的情况,称为闭包

  • 栈的压入 弹出队列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4...

  • 如何判断一棵树是完全二叉树

    完全二叉树: 叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树 如何判断二叉树 采用层序遍历,如果是一颗完全二叉树,则中间的节点不会为...

  • 求树的深度

    struct TreeNode{int val;TreeNode* left;TreeNode* right;TreeNode(int x) :val(x), left(NU...

  • 120
    TCP拥塞控制

    TCP超时与重传机制 TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错,超时丢包等问题TCP设计的超时与重传机制。 基本原理:在发送一个数据之...

  • 乐观锁与悲观锁

    悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到...

  • TCP滑动窗口

    TCP是以一个段为单位的,如果每次只发一个段进行一次确认应答处理的话,将会导致通信性能的下降,尤其是往返时间较长的情况下。为了解决这个问题,引入了窗口这个概念。即使在往返时间...

  • 指向二维数组指针的定义方式

    int a[3][6];int **p=a; 像这样定义是错误的因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1]...

  • listen()函数

    listen()函数仅有TCP服务器调用 #include int listen(int sockfd, int backlog) 调用listen(),导致套接字从CLOS...

  • 0-1背包算法

    问题描述: 给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大? 在选择物品的时候,对...

  • SQL逻辑查询处理阶段简介

    逻辑查询处理阶段简介 FROM:对FROM子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1ON:对VT1应用ON筛选器。只有那...

  • linux文件系统之inode

    inode是什么 理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读...

  • 设计模式

    通过封装,继承,多态,把程序耦合度降低,使代码可维护,可扩展,可复用,灵活性更好。 设计模式的原则 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。开放-封闭原则:...

  • 单例模式

    单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式分为懒汉式和饿汉式 懒汉式是当该实例第一次被引用时,才将自己实例化;饿汉式是在被加载时就将自己实例化了...

  • 观察者模式

    观察者模式又叫发布-订阅模式观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更...

  • python asyncio

    网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使...

  • 协程

    协程是啥首先我们得知道协程是啥?协程其实可以认为是比线程更小的执行单元或者说实际上就是用户级的线程。为啥说他是一个执行单元,因为他自带CPU上下文。这样只要在合适的时机,我们...