240 发简信
IP属地:云南
  • LRU、LFU

    1. LRU(最近最少使用缓存) 力扣146题 2. LFU(最不经常使用缓存) 力扣460题

  • 读写锁实现

    使用互斥锁和条件变量实现读写锁 代码

  • 120
    malloc、STL空间配置器

    malloc一直是困惑我好久的事情,今天记录一下。 malloc工作原理malloc开始搜索空闲内存块,如果能找到一块大小合适的就分配出去如果malloc找不到一块合适的空闲...

  • 常见手撕代码

    线程池Threadpool简单实现 shared_ptr String和strcpy函数 HashMap不完整实现,大概意思是这样

  • 单例模式线程安全问题

    单例模式 单例模式的实现分为懒汉和饿汉两种实现方法 懒汉模式:第一次用到该实例才初始化。 饿汉模式:实例创建即初始化。 单例模式注意事项:构造函数设置为private;拷贝构...

  • shared_ptr实现和线程安全分析

    一、shared_ptr使用方法 使用该智能指针(或者其他两种)需要导入头文件#include <memory> 创建空指针 明确指向 拷贝构造 除此之外还可以对shared...

  • 120
    KMP、堆排序、快排、优先队列

    KMP算法 kmp算法的核心就是求next数组,即最长公共前后缀个数数组。比如对于文本串string s = "aabaabaaf",模式串string t = "aabaa...

  • 120
    工厂模式

    工厂方法和抽象工厂 工厂方法 定义一个创建对象的接口,让子类决定创建哪一个类。 代码如下: 工厂模式实现比较简单,但是工厂模式对于对象的创建仅仅局限于一个类(即Product...

  • 模版方法模式

    模版方法(Template Method)模式 在面向对象系统的设计中,对于某一个业务逻辑在不同的对象下实现细节不一样,但是逻辑框架相同,可以使用模版方法模式。 普通实现中,...

  • 常见背包问题归纳

    一、首先对背包问题进行分类 1、组合问题377. 组合总和 Ⅳ[https://leetcode-cn.com/problems/combination-sum-iv/des...

  • 120
    回溯算法

    文章对应的题目 46 全排列(M)51 N皇后(H) 解决一个回溯问题,基本上就是一个决策树的遍历过程。有三点需要考虑: 路径:也就是已经做出的选择。 选择列表:当前可以做的...

  • 图论基础-labuladong公众号

    文章对应的题目 797 所有可能的路径(M) 图基本的实现方式分为邻接表和邻接矩阵 邻接表:把每一个节点x的邻居都存到一个列表里,然后把x和这个列表关联起来,就可以通过一个节...

  • 120
    二叉搜索树(三)labuladong学习笔记

    文章对应的题目 96 不同的二叉搜索树95 不同的二叉搜索树II 96.不同的二叉搜索树 若输入 ,总共有5种BST,结果为5,这就需要 。 若 ,或者说用 构造平衡二叉树,...

  • 120
    二叉搜索树(二)labuladong学习笔记

    文章对应的题目 450 删除BST的节点(M)701 二叉搜索树的插入操作(M)700 二叉搜索树的搜索(E)98 验证二叉搜索树 对于BST相关的问题,基本上有一个代码框架...

  • 120
    二叉搜索树(一)labuladong学习笔记

    文章对应的题目 230 BST第K小的元素538 二叉搜索树转化为累加树 二叉搜索树BST特性: 1、对于BST上每个节点node,左子树的节点的值都比node的值要小,...