自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux进程间通信:共享内存

共享内存实际是在。共享内存实现进程间通信,是操作系统在实际物理内存开辟一块空间,一个进程在自己的页表中,将该空间和进程地址空间上的共享区的一块地址空间形成映射关系。另外一进程在页表上,将同一块物理空间和该进程地址空间上的共享区的一块地址空间形成映射关系。。。共享内存是进程间通信中最快的。

2024-02-22 14:38:55 780 1

原创 布隆过滤器

我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的?用服务器记录了用户看过的所有历史记录,当推荐系统推荐新闻时会从每个用户的历史记录里进行筛选,过滤掉那些已经存在的记录。如何快速查找呢?1. 用。3. 将,即。

2023-12-16 13:49:39 111 2

原创 希尔排序讲解 包会 不信你来看看

希尔排序是基于选择排序 由希尔发明的 希尔排序难点在gap对数组的分割 将数组分割为许多子数组 将子数组进行排序 每次预处理都将原始数组处理为接近有序 最终变为有序。有什么疑惑都可以留言 我会及时回复。下图就是希尔排序的过程图:很简单。

2023-12-09 23:41:04 125 2

原创 哈希桶——开放定址法

迭代器中_node是实现 operator*(),operator->(),operator!=().每一次桶的位置 operator++()会运用到进行节点的遍历 记录每次桶的位置方便遍历哈希表获取哈希桶的数据参数,获取哈希表的成员数据,成员函数等,我个人认为这个成员很方便也很重要。

2023-11-30 11:23:40 178

原创 哈希表——闭散列表

负载因子是关键词key的存储个数与哈希表内存大小之比,一般取0.75左右,这样做是为了提高存储效率,(只有百分之75的内存可以用,剩余的百分之25,是不存储的)减少哈希冲突。

2023-11-28 22:31:57 174

原创 位图的详细讲解

位运算操作符:或,与,异或,按位取反。

2023-11-25 12:10:05 130

原创 leetcode.884——字符串分割(substr),哈希(unordered_map)的练习

如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却。两种解法 第一种比较普遍 第二种运用substr进行优化。是一串由空格分隔的单词。返回列表中单词可以按。

2023-11-23 19:48:23 173

原创 哈希unordered_set,unordered_map的练习

请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。输出结果中的每个元素一定是。代码unordered_set。[4,9] 也是可通过的。

2023-11-23 19:37:40 125

原创 红黑树,AVLTree树(平衡二叉树)迭代器原理讲解

end()),是不等于end节点,所以在遍历完右子树后就像上返回找类似于下图中绿色的parent节点了(右子树遍历完向上找),所以遍历完整颗二叉树后,就会向上找节点,到了父节点的父亲时就为空了,也就是end节点,所以就停止遍历了。简单叙述以下,二叉树上面迭代器的运行逻辑,根据下面的图,迭代器的begin就是二叉树的最左节点,end是二叉树根节点的父节点(NULL)。为什么要这样设计,因为平衡二叉树在中序遍历下是升序排列,所以只有首部begin在二叉树最左节点,向后++遍历时,才能打印有序数据。

2023-11-12 18:37:45 123

原创 map相关题目

题目描述:输入一个英文句子,把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕上输出来,次数一样的按照单词小写的字典序排序输出,要求能识别英文单词和句号。

2023-11-08 20:29:47 86

原创 红黑树——原理刨析

红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的,所以不是平衡二叉树。如上图,就是红黑树。

2023-11-06 13:10:49 205 2

原创 二叉树刷题——递归

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数 0≤10000≤n≤1000,二叉树中每个节点的值 0≤10000≤val≤1000要求:空间复杂度O(1)(即在原树上操作),时间复杂度O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针。

2023-11-03 20:54:05 128 1

原创 优先级队列priority_queue

1. 优先队列是一种容器适配器,根据严格的弱排序标准它的第一个元素总是它所包含的元素中最大的。2. 此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。3. 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。4. 底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。

2023-10-31 19:40:49 78

原创 BSTree二叉树讲解

再比如统计单词次数,统计成功后,给定单词就可快速找到其出现的次数,单词与其出。首先查找元素是否在二叉搜索树中,如果不存在,则返回, 否则要删除的结点可能分下面四种情。看起来有待删除节点有4中情况,实际情况a可以与情况b或者c合并起来,因此真正的删除过程。a、从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。每一个关键码key,都有与之对应的值Value,即的键值对。比如英汉词典就是英文与中文的对应关系,通过英文可以快速找到与其对应的中文,英。

2023-10-29 23:42:26 163

原创 AVLTree代码刨析

AVLTree是高度平衡二叉树每一个节点的左右子树高度差都小于2,这是AVLTree高度平衡的由来,他是在平衡二叉树的基础上进行特殊的处理(旋转:如果该节点不满足高度平衡二叉树的特点就进行旋转旋转目的是为了调整该节点左右子树高度差 促使其达到高度平衡二叉树AVLTree节点之间是通过三叉链(里面存有三个节点:)进行链接的 这样做为了更好的用迭代器去遍历二叉树AVLTree缺点也很明显,旋转次数太多,但红黑树旋转就较少,所以AVLTree树的建立较耗时间,红黑树肯会更优。

2023-10-08 14:21:37 81

原创 从中序遍历和后序遍历构建二叉树

中等1.1K相关企业给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。

2023-09-25 23:06:06 192

原创 C++ list容器的实现及讲解

对C++类的基本了解 默认构造函数 操作符重载 this指针 引用 模板等知识具有一定的了解,阅读该文章会很轻松。

2023-09-24 14:59:24 500 2

原创 leetcod——62不同路径 (动态规划讲解)

简单动规 动规小白不容错过

2023-08-02 13:39:27 102

原创 热门排序各个版本代码 递归非递归都有 纯代码

纯代码 思维逻辑还是比较清楚 快排 归并 希尔 都是之前讲解的 如有不懂 我会解释

2023-08-02 13:09:58 95

原创 左叶子之和

虽然属于简单 但该题有点意思

2023-08-02 12:59:35 90

原创 牛客小题 日期的相关运算

大家根据 题目编号搜搜 就不给链接了 这两道题基本一样 但是可以练习类KY258 日期累加。

2023-08-01 21:49:37 294

原创 牛客上面的约瑟夫环问题

5个人 数到2 你们在纸上画图 我就不画了 对于数组实现你们可以去牛客等上面去看看 我就不给了。数组也可以做 但是数组需要去控制循环 不太好控制 我之前搞了 最后看别人的实现。用单链表实现循环 再去删除要删除的人。对于本题 我感觉还是链表做起来舒服。但是链表搞了一次就搞好了 香的嘞~

2023-07-27 18:58:55 121

原创 Leetcode——404 左叶子之和

官方代码 看似没有特点 实则暗藏玄机 它在遍历左树时不仅记录了数值 而且返回了 (考虑到了上面的那种情况 )我自己写时 只考虑到了 如何找到左叶子节点 然而却忽略了 上面示例会直接返回 而没有去走右边的子树。在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。难度简单(虽然简单 但是我用递归做时 还是有点坑的)长记性了 以后写代码还是要学习学习这种写法。总结的不是很好 有大神的话请指教。,返回所有左叶子之和。

2023-07-27 18:49:33 316

原创 带头 双向 循环 链表——C语言实现

如上图所示 该结构体中有两个指针 一个指向下一个节点 另一个指向前一个节点 循环也就是尾节点的next 指向头节点 将prior改为prev 头结点的prev指向尾节点。那么如果链表没有节点 就没有尾节点 自然也就不能尾插 也就是说这个新节点要作为链表的头节点 这个操作自然就和上面的尾插不同了 所以要进行讨论。假设链表有一个节点 进行尾插 就只是将新的节点连接到链表的尾节点之后。因为下面尾插和头插 都要用到开辟节点 所以都要用 那不如写一个函数进行赋用。那么开始就写删除节点的函数 尾删和头删。

2023-05-18 18:55:17 379

原创 单链表leetcode——C语言

尾部插入 将不是val的节点连接到 一个指针上返回这个指针。,请你删除链表中所有满足。上面就是这道题的讲解`~给你一个链表的头节点。

2023-04-23 09:05:01 235 1

原创 单链表C语言实现 (不带头 带头两个版本)

不带头和带头的 当链表有数据时 尾部插入和头部插入是一样的流程 用一个临时变量tmp 向后寻找pos位置 再将该位置的下一个节点的地址给 要插入节点的指针 最后将要插入节点的地址给前一个节点的指针 这样就将该节点插进去了。链表的插入会向内存申请空间 去创造一个新的节点 所以后续的 头部插入 尾部插入 还是任意位置的插入 都会进行相同的操作 所以这里将开辟节点这个过程单独分装为一个函数 方便后面的操作。对链表的查找 修改 其实就是将链表遍历一遍 上面的寻找尾部 打印链表就是遍历链表 所以大家可以将其修改修改。

2023-04-21 14:47:23 211 2

原创 顺序表 和 链表 的区别

链表的应用其实就是对结构体的应用 如果对前面的通讯簿掌握不错 这里就是有 如何去访问结构体中的成员变量 “ .”和“->”访问操作符的应用。因为链表是基于结构体而言的 结构体中不仅存储你想存储的数据而且还存储了下一个数据存储空间的地址(根据你的需要 这里的地址不至一个)这就是单向非循环链表 逻辑顺序是上图这样子 但是物理存储并不是这样子 肯是将上图节点打乱排列的 但是不影响访问 因为里面有指针。链表在内存中的存储是不连续的 但是他的逻辑存储是连续的。链表是将内存中的小空间利用起来 让内存的利用率提高。

2023-04-20 17:03:20 338 1

原创 链表中的递归算法C语言带你看看

这个递归就是先归到链表末尾 将最后一个节点作为头节点 newhead (记录翻转后的头节点)上一层函数调用中的head 是指向倒数第二个节点的 所以head->next->next 就是最后一个节点中存放下一个节点的指针 让倒数第一个节点指向倒数第二个节点 再将倒数第二个节点指向空 达到了一次翻转。对于这个递归 他向下归的时候 就对k个节点进行了翻转 达到递归条件返回时 只返回了头节点 也就是S 或者head 将返回的节点连接到E->next 就达到了k个节点的翻转。,请你反转链表,并返回反转后的链表。

2023-04-20 14:16:26 453 2

原创 手把手带你实现通讯录C语言

顺序表的相关应用 文件操作 动态内存开辟等知识综合运用

2023-04-16 11:55:08 432 6

原创 C语言库函数(memcpy,memmove)的模拟实现

模拟实现memcpy函数下面是memcpy的函数声明。

2023-04-14 11:37:18 392

原创 Leetcode——6. N 字形变换(C语言讲解)

重在找规律 以及考察代码实现能力 没其他难度。,以从上往下、从左到右进行 Z 字形排列。

2023-04-06 22:56:51 403

原创 牛刀小试(牛客小题)

牛客小题 要更加努力了

2023-03-26 16:06:00 504 2

原创 Leetcode217——是否存在重复数字

简单小题 快来练练手

2023-03-25 15:04:09 383

原创 归并排序非递归——C语言讲解

归并排序 ——非递归版本——C语言详解

2023-03-19 14:51:29 417 1

原创 统计排序 —— 简单的哈希统计

统计排序简单的哈希算法

2023-03-18 09:03:54 106

原创 归并排序C语言——递归版本

归并排序——C语言

2023-03-17 22:45:11 119 3

原创 快速排序C语言讲解——递归版本

Hoare版本 挖坑法 前后指针 加上递归 讲解快排

2023-03-17 20:44:39 245

原创 C语言详解KMP算法

KMP算法 和 暴力求解法 求一个字符串的子字符串在该主子符串中的位置

2023-03-17 19:34:31 676 2

原创 C语言详解——选择排序

选择排序详解

2023-03-14 23:33:01 316

原创 strstr 运用及实现

strstr 运用及其实现

2023-03-11 15:40:08 55

空空如也

空空如也

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

TA关注的人

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