- 前言在上两篇中,我们已经学习了string类的一个使用,并且做了一些相关的OJ练习,相信大家现在对于string的使用已经没什么问题了。那我们这篇文章呢,就来带大家对string进行一个模拟实现,这篇文章过后,有些地方大家或许就可以理解的更深刻一点。1. string的结构那通过之前文章的学习我们已经对string有了一些了解了:我们知道,string的底层其实就是一个支持动态增长的字符数组... 前言在上两篇中,我们已经学习了string类的一个使用,并且做了一些相关的OJ练习,相信大家现在对于string的使用已经没什么问题了。那我们这篇文章呢,就来带大家对string进行一个模拟实现,这篇文章过后,有些地方大家或许就可以理解的更深刻一点。1. string的结构那通过之前文章的学习我们已经对string有了一些了解了:我们知道,string的底层其实就是一个支持动态增长的字符数组...
- 目录1. 搜索算法的重要性2. 线性搜索算法的应用场景2.1 在有序数组中查找目标元素2.2 在字符串中查找特定字符2.3 在链表中查找目标节点3. 二分搜索算法的应用场景3.1 在有序数组中查找目标元素3.2 在矩阵中查找目标值3.3 在旋转排序数组中查找目标元素4. 广度优先搜索算法的应用场景4.1 查找迷宫中的最短路径4.2 在社交网络中查找最短距离的好友4.3 在树或图中查找最短路... 目录1. 搜索算法的重要性2. 线性搜索算法的应用场景2.1 在有序数组中查找目标元素2.2 在字符串中查找特定字符2.3 在链表中查找目标节点3. 二分搜索算法的应用场景3.1 在有序数组中查找目标元素3.2 在矩阵中查找目标值3.3 在旋转排序数组中查找目标元素4. 广度优先搜索算法的应用场景4.1 查找迷宫中的最短路径4.2 在社交网络中查找最短距离的好友4.3 在树或图中查找最短路...
- 相信熟悉高并发架构的同学,一定都接触过一个名词————“布隆过滤器”,又或者一些朋友接触其实是在学习Redis的时候,了解到其中有这么一种数据类型。但实际上,除了Redis,在高并发或者各种存储性质的架构中,你经常能见到这种设计的存在,那么今天我们就好好说一说这个布隆过滤器一、布隆过滤器简介布隆过滤器是1970年由布隆(Burton Howard Bloom)提出的概率型数据结构:它通过位数... 相信熟悉高并发架构的同学,一定都接触过一个名词————“布隆过滤器”,又或者一些朋友接触其实是在学习Redis的时候,了解到其中有这么一种数据类型。但实际上,除了Redis,在高并发或者各种存储性质的架构中,你经常能见到这种设计的存在,那么今天我们就好好说一说这个布隆过滤器一、布隆过滤器简介布隆过滤器是1970年由布隆(Burton Howard Bloom)提出的概率型数据结构:它通过位数...
- 1. 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语... 1. 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语...
- Sunday 算法是一种字符串搜索算法,由Daniel M.Sunday于1990年开发,该算法用于在较长的字符串中查找子字符串的位置。算法通过将要搜索的模式的字符与要搜索的字符串的字符进行比较,从模式的最左侧位置开始。如果发现不匹配,则算法将模式向右滑动一定数量的位置。这个数字是由当前文本中当前模式位置的最右侧字符确定的。相比于暴力方法,该算法被认为更加高效。 6.2.1 字符串与特征码转... Sunday 算法是一种字符串搜索算法,由Daniel M.Sunday于1990年开发,该算法用于在较长的字符串中查找子字符串的位置。算法通过将要搜索的模式的字符与要搜索的字符串的字符进行比较,从模式的最左侧位置开始。如果发现不匹配,则算法将模式向右滑动一定数量的位置。这个数字是由当前文本中当前模式位置的最右侧字符确定的。相比于暴力方法,该算法被认为更加高效。 6.2.1 字符串与特征码转...
- KMP算法是一种高效的字符串匹配算法,它的核心思想是利用已经匹配成功的子串前缀的信息,避免重复匹配,从而达到提高匹配效率的目的。KMP算法的核心是构建模式串的前缀数组Next,Next数组的意义是:当模式串中的某个字符与主串中的某个字符失配时,Next数组记录了模式串中应该回退到哪个位置,以便继续匹配。Next数组的计算方法是找出模式串每一个前缀中最长的相等前缀和后缀,并记录下来它们的长度,... KMP算法是一种高效的字符串匹配算法,它的核心思想是利用已经匹配成功的子串前缀的信息,避免重复匹配,从而达到提高匹配效率的目的。KMP算法的核心是构建模式串的前缀数组Next,Next数组的意义是:当模式串中的某个字符与主串中的某个字符失配时,Next数组记录了模式串中应该回退到哪个位置,以便继续匹配。Next数组的计算方法是找出模式串每一个前缀中最长的相等前缀和后缀,并记录下来它们的长度,...
- Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列。很多知名开源项目里,比如 canal、log4j2、 storm 都是用了 Disruptor 以提升系统性能 。这篇文章,我们通过两个例子一步一个脚印帮助同学们入门 Disruptor 。 1 环形缓冲区下图展示了 Disruptor 的流程图 。和线程池机制非常类似, Disruptor 也是非常典型的生产者/消费者... Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列。很多知名开源项目里,比如 canal、log4j2、 storm 都是用了 Disruptor 以提升系统性能 。这篇文章,我们通过两个例子一步一个脚印帮助同学们入门 Disruptor 。 1 环形缓冲区下图展示了 Disruptor 的流程图 。和线程池机制非常类似, Disruptor 也是非常典型的生产者/消费者...
- 对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如: class Base{ public: Base(): m_a(0), m_b(0){ } Base(int a, int b): m_a(a), m_b(b){ } private: int m_a; int m_b; }; ... 对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如: class Base{ public: Base(): m_a(0), m_b(0){ } Base(int a, int b): m_a(a), m_b(b){ } private: int m_a; int m_b; }; ...
- 在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为:抛出(Throw)--> 检测(Try) --> 捕获(Catch)异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:throw exceptionData;exceptionData 是“异常数据”的意思,它可以包... 在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为:抛出(Throw)--> 检测(Try) --> 捕获(Catch)异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:throw exceptionData;exceptionData 是“异常数据”的意思,它可以包...
- 在C语言中动态内存分配是个非常重要的章节,今天我们就给大家详解讲解一下动态内存分配的4个函数,malloc free calloc realloc 这这个函数把这些掌握了,恭喜你就可以玩转动态内存分配了! 在C语言中动态内存分配是个非常重要的章节,今天我们就给大家详解讲解一下动态内存分配的4个函数,malloc free calloc realloc 这这个函数把这些掌握了,恭喜你就可以玩转动态内存分配了!
- 4.数据结构4.1二叉树【理解】二叉树的特点二叉树中,任意一个节点的度要小于等于2节点: 在树结构中,每一个元素称之为节点度: 每一个节点的子节点数量称之为度二叉树结构图编辑4.2二叉查找树【理解】二叉查找树的特点二叉查找树,又称二叉排序树或者二叉搜索树每一个节点上最多有两个子节点左子树上所有节点的值都小于根节点的值右子树上所有节点的值都大于根节点的值二叉查找树结构图编辑二叉查找树和... 4.数据结构4.1二叉树【理解】二叉树的特点二叉树中,任意一个节点的度要小于等于2节点: 在树结构中,每一个元素称之为节点度: 每一个节点的子节点数量称之为度二叉树结构图编辑4.2二叉查找树【理解】二叉查找树的特点二叉查找树,又称二叉排序树或者二叉搜索树每一个节点上最多有两个子节点左子树上所有节点的值都小于根节点的值右子树上所有节点的值都大于根节点的值二叉查找树结构图编辑二叉查找树和...
- 变量Go 是静态类型语⾔,不能在运⾏期改变变量类型。使⽤关键字 var 定义变量,⾃动初始化为零值。如果提供初始化值,可省略变量类型,由编译器⾃动推断。 var声明变量的一般形式是使用 var 关键字: var identifier type 。var x intvar f float32 = 1.6var s = "abc" :=在函数内部,可⽤更简略的 “:=” ⽅式定义变量,func... 变量Go 是静态类型语⾔,不能在运⾏期改变变量类型。使⽤关键字 var 定义变量,⾃动初始化为零值。如果提供初始化值,可省略变量类型,由编译器⾃动推断。 var声明变量的一般形式是使用 var 关键字: var identifier type 。var x intvar f float32 = 1.6var s = "abc" :=在函数内部,可⽤更简略的 “:=” ⽅式定义变量,func...
- 一.stack基本概念栈(Stack)是一种常见的线性数据结构,遵循后进先出(Last-In-First-Out,LIFO)的原则。类似于我们在现实生活中堆叠书本或盘子的方式,最后放入的元素最先被取出。在栈中,元素的插入操作(入栈)是在栈顶进行,而元素的删除操作(出栈)也是在栈顶进行。这使得栈成为一种适合于后续操作依赖于最近插入的元素的数据结构。栈通常具有以下两个基本操作:入栈(Push)... 一.stack基本概念栈(Stack)是一种常见的线性数据结构,遵循后进先出(Last-In-First-Out,LIFO)的原则。类似于我们在现实生活中堆叠书本或盘子的方式,最后放入的元素最先被取出。在栈中,元素的插入操作(入栈)是在栈顶进行,而元素的删除操作(出栈)也是在栈顶进行。这使得栈成为一种适合于后续操作依赖于最近插入的元素的数据结构。栈通常具有以下两个基本操作:入栈(Push)...
- 一.list基本概念功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由—系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优... 一.list基本概念功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由—系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优...
- 2023-09-13:用go语言,给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4。输出: True。来自左程云。答案2023-09-13:第一种算法(canPartitionKSubsets1)使用动态规划的思想,具体过程如下:1.计算数组nums的总和... 2023-09-13:用go语言,给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4。输出: True。来自左程云。答案2023-09-13:第一种算法(canPartitionKSubsets1)使用动态规划的思想,具体过程如下:1.计算数组nums的总和...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考
2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本
2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签