自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Trie树

Trie树: 又称前缀树/字典树,多用于保存关联性数组,因其每个节点的所有子孙均具有相同的前缀而得名。 性质: 基本性质 (以保存字符串为例) 1,根节点不保存字符,除此之外每个节点只保存一个字符。 2,从根节点dfs到某一个节点,将路径上经过的字符顺序连接起来,即为该节点对应的字符串。 3,每个节点的所有子节点包含的字符互不相同。 特点: 优势:可以极大限度的避免多余的字符比较,实现快速查找,并且相较于哈希表,trie树并不存在冲突。 缺点:以空间换时间,其每一个节点都可能包含至多字符集大小数目的指针。

2021-04-10 09:49:46 53

原创 并查集

原理: 初始状态下并查集内所有元素各自为一个森林的头结点,通过关系的判定完成森林的合并,最终将所有可连通的元素均划分至一片森林中。 union_find.h #pragma once #include<vector> class union_find { public: /*1、初始化 */ union_find(int n); /*2、将两节点按秩合并*/ void union_(int p, int q); /*3、判断两节点是否连通*/ bool connect(int p,

2021-04-08 11:37:55 63

原创 反转链表

思路 记录当前节点与当前节点的下一节点,反转过程即为将当前节点插入到虚拟头节点与虚拟头节点的下一元素之间,再利用维系的下一节点来改变当前节点所指向的位置。 class Solution { public: ListNode* ReverseList(ListNode* pHead) { if(pHead==nullptr) return pHead; ListNode* p = new ListNode(-1); ListNode* cur = pHe

2021-04-06 22:30:53 49

原创 一致性哈希原理及实现(C++版)

一致性哈希 定义: 主要应用于解决分布式缓存的问题,在移除或者添加服务器(哪怕只改变一个)时,能够尽量的减少对已存在的服务请求与请求服务器之间的映射的影响。 在分布式系统中,通常可以将对象与节点的映射关系简单看做key%n,如果节点(即n)发生变动时,会使得很大一部分对象的映射找不到对应的“桶”,或者是新增的“桶”无法得到利用。而一致性哈希算法则具有极小的迁移成本,并且通过虚拟节点可以很大程度上实现负载的均衡性、分散性。 原理: 一致性哈希是将一段数据范围作为”桶“,再将实际具有的节点映射到”桶区域“中的某

2021-04-06 14:20:23 623

原创 删除有序数组中的重复项II

双指针标记 class Solution { public: int removeDuplicates(vector<int>& nums) { if(nums.size()<=2) return nums.size(); int start=0,second=1,count=2; for(int i=2;i<nums.size();i++) { if(nums[i

2021-04-06 08:26:53 62

原创 合并两有序数组

逆向双指针 class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int start1 = m-1,start2 = n-1; while(start1>=0&&start2>=0) { if(nums1[start1]>=nu

2021-04-05 17:45:03 57

原创 栈的实现

基于单链表实现栈特点:节点插入、删除速度快,最新插入的节点将一直位于链表的头部位置stack.hmain.cpp 特点:节点插入、删除速度快,最新插入的节点将一直位于链表的头部位置 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 stack.h #ifndef STACK_H #define STACK_H template<typename T> class Node

2021-04-05 17:30:48 47

空空如也

空空如也

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

TA关注的人

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