- 博客(35)
- 收藏
- 关注
原创 【无标题】
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2026-05-21 21:26:51
25
原创 C++之vector讲解
本文深入讲解了STL库中vector的模拟实现,重点分析了vector的构造原理和关键成员函数的实现。文章首先通过源码解析了vector的三个核心成员变量(start、finish、end_of_storage)及其迭代器特性,随后详细展示了reserve()、resize()等关键函数的实现细节,特别强调了深拷贝的必要性和memcpy的局限性。在构造函数部分,系统介绍了四种构造方式(数量初始化、迭代器构造、默认构造和拷贝构造),并着重解决了模板类型推导中的常见编译错误问题。最后通过自定义拷贝构造函数演示了
2026-05-21 21:26:10
582
原创 从基础功能到自主决策, Agent 开发进阶路怎么走?
开发强化学习训练框架(Q-learning/PPO)实现基础通信协议(HTTP/WebSocket)实现简单规则驱动的任务(如定时任务、条件触发)掌握编程语言基础(Python/Java等)集成传感器数据处理(视觉/语音/IoT)开发多模态输入解析(文本+图像+语音)构建环境建模系统(SLAM/语义地图)实现实时数据流处理(消息队列/流计算)构建状态管理机(有限状态机/行为树)实现多智能体协作协议(合同网/拍卖)构建安全防护系统(异常检测/熔断)集成机器学习模型(分类/回归)设计在线学习管道(持续训练)
2026-04-24 17:36:44
252
原创 C++之string(OJ练习)
本文总结了多个字符串处理相关的编程题目及解法: 字符串最后一个单词长度:使用反向查找空格位置确定单词长度,注意getline()读取整行 验证回文串:过滤非字母数字字符后比较正反字符串或使用双指针法判断 反转字符串:直接交换首尾字符实现原地反转 翻转字符串中的单词:通过查找空格分割单词后进行局部反转 字符串相乘:模拟竖式乘法,用数组存储中间结果 字符串转整数:处理前导空格和正负号,遇到非数字字符立即终止 字符串相加:模拟加法运算,注意处理不同长度字符串和进位 首个唯一字符:使用哈希表统计字符频率后再遍历查找
2026-04-24 17:35:19
489
原创 C++之string深浅拷贝+模拟实现(内附完整实现代码+测试代码)
本文介绍了C++中string类的基本概念及其模拟实现。string类是基于模板的特化实例,提供了丰富的字符串操作方法。文章详细讲解了string类的构造函数、析构函数、赋值运算符重载等成员方法,重点分析了9种不同构造函数的实现原理和使用场景。同时介绍了迭代器(begin/end/rbegin/rend)的功能以及Capacity相关方法(size/length)的作用。通过模拟实现string类,可以帮助理解其底层结构(char*指针、size和capacity变量)和工作机制。string类相比C语言的
2026-03-15 21:11:16
807
原创 C++之模板
本文介绍了C++模板的基础应用,包括函数模板和类模板的概念与使用方法。函数模板通过template关键字定义,可自动推导参数类型,解决不同类型数据需要重复编写相似函数的问题。文章展示了三种处理不同类型参数的模板应用方式:多模板参数、强制类型转换和显式实例化。类模板则允许创建通用类结构,类名与类型分离,通过实例化生成特定类型的模板类。模板技术极大提高了代码复用性,是C++泛型编程的重要基础。后续将进一步深入讲解模板的高级应用。
2026-01-20 22:40:40
869
原创 C语言vsC++中的动态内存管理(内含底层实现讲解!)
本文介绍了C和C++中的动态内存管理机制。在C语言中,主要使用malloc、calloc和realloc函数进行动态内存分配,其中malloc直接分配未初始化内存,calloc会自动初始化为0,realloc用于内存扩容。C++引入了new和delete操作符来简化内存管理:new不仅分配内存还能初始化(包括自定义类型调用构造函数),delete释放内存时会自动调用析构函数。文章还通过反汇编代码揭示了new底层实际调用了malloc函数,delete则调用了free函数,实现了更安全便捷的内存管理方式。
2026-01-16 18:13:23
771
原创 C++之类和对象(下)
本文深入探讨了类和对象中的关键概念,主要包括const成员函数和构造函数的初始化列表。const成员函数通过特殊的语法规则(void Print() const)实现对this指针的const修饰,解决了const对象调用成员函数时的权限问题。初始化列表作为成员变量定义和初始化的关键环节,对于const成员、引用类型成员和没有默认构造函数的自定义类型成员必须显式初始化。文章详细分析了初始化列表的执行顺序(按成员声明顺序而非代码顺序)、初始化与赋值的区别,以及编译器对内置类型成员的默认处理机制。通过具体代码示
2026-01-10 15:54:13
737
原创 C++之类和对象(中)(超详细拷贝构造与赋值运算符重载讲解,另附流插入流提取等等重载和日期类代码详解!)
本文介绍了C++中类的两个重要特性:拷贝构造函数和运算符重载。拷贝构造函数是一种特殊的构造函数,用于用一个对象初始化另一个新对象,其形参必须是const修饰的类类型引用以避免无限递归。编译器默认生成的拷贝构造函数执行浅拷贝,当类涉及动态内存管理时需要手动实现深拷贝。运算符重载通过operator关键字扩展运算符对自定义类型的支持,但需保持运算符原有含义,且五种运算符(.*、::、sizeof、?:、.)不可重载。文中通过日期类和栈类的示例详细说明了这两个特性的使用场景和注意事项。
2025-10-30 16:23:07
1054
原创 C++之类和对象(中)(六大默认成员函数中的构造函数与析构函数)
文章摘要: C++类中的六个默认成员函数之构造函数详解,重点讲解了构造函数的作用、特点及使用方法。构造函数在对象创建时自动调用用于初始化,分为无参、全缺省和编译器默认生成三种类型。内置类型成员变量默认不初始化,可通过赋缺省值解决;自定义类型成员会自动调用其默认构造函数。文章还指出了无参构造函数与全缺省构造函数不能共存的问题,并强调了构造函数调用时的特殊语法规则(如避免函数声明歧义)。这些特性体现了C++对对象初始化的自动化支持和类型安全机制。
2025-10-24 13:22:40
1448
原创 C++之类和对象(上)(多例子详解this指针以及封装特性的初步引入)
本文介绍了面向对象编程中类和对象的基本概念。首先对比了面向过程与面向对象的区别,面向对象以实体交互为核心,如人、洗衣机等对象共同完成洗衣任务。其次详细讲解了类的定义方式,包括成员变量和成员函数的声明,以及class与struct的区别。重点阐述了三种访问限定符(public、protected、private)的作用,通过这些限定符实现封装特性,保护数据安全。最后说明了类的作用域规则和实例化过程,演示了如何通过域作用限定符在类外定义成员函数。文章通过生动的例子(如电脑、洗衣机等)帮助读者理解面向对象的核心思
2025-10-21 20:32:55
1015
原创 C++入门(内含命名空间、IO、缺省参数、函数重载、引用、内联函数、auto关键字、新式范围for循环、关键字nullptr的超全详细讲解!)
本文介绍了C++与C语言的渊源及其对C语言缺点的改进,内含命名空间、IO、缺省参数、函数重载、引用、内联函数、auto关键字、新式范围for循环、关键字nullptr的超全详细讲解
2025-09-21 19:04:08
1777
原创 一篇文章带你玩转效率超高的归并排序与计数排序!(内含递归与非递归版本讲解)
本文介绍了归并排序的递归和非递归实现方法,以及计数排序的基本原理。归并排序采用分治思想,通过递归划分区间到最小单元后逐步合并有序子序列,非递归版本则通过gap参数控制合并步长,并详细说明了边界处理的三种情况。计数排序适用于数据范围较小的场景,通过统计元素出现次数实现线性时间复杂度排序。两种算法代码实现均附有详细注释,展示了从局部有序到整体有序的排序过程,为理解经典排序算法提供了清晰的技术参考。
2025-08-15 23:45:17
1011
原创 一篇文章带你完美拿下快速排序的三个版本(附带随机取数、三数取中、三路划分、小区间优化等细节功能优化讲解)!
一篇文章带你拿下快速排序的三个版本(Hoare法、挖坑法、前后指针法)以及各种功能细节(如三数取中、三路划分等)的优化实现!(附OJ题目)
2025-08-14 22:48:43
1801
原创 c语言-数据结构-一篇文章带你玩转希尔排序和插入排序
本文介绍了插入排序和希尔排序两种排序算法的实现方式及时间复杂度分析。插入排序通过逐个插入元素构建有序序列,时间复杂度为O(N²)最坏情况,O(N)最好情况。希尔排序是插入排序的改进版,通过预排序(分组排序)提高效率,包含多次预排序和最终插入排序两个阶段。预排序通过动态调整gap值(初始为n/2并逐步减半)实现分组,使数据趋于有序。希尔排序的时间复杂度约为O(N^1.3),优于直接插入排序。文中通过图示和代码示例详细说明了两种排序的具体实现过程及性能优化原理。
2025-07-30 17:33:46
1418
原创 c语言-数据结构-二叉树OJ之子树与二叉树的构建
本文介绍了两个二叉树相关的OJ题解。第一部分"另一棵树的子树"通过递归比较两棵树的节点值,判断一棵树是否是另一棵的子树。第二部分"二叉树的构建及遍历"展示了如何根据前序遍历字符串构建二叉树,并进行中序遍历输出。两题均采用递归方法解决,涉及二叉树的基本操作和遍历技巧。
2025-07-29 14:33:13
585
原创 c语言-数据结构-沿顺相同树解决对称二叉树问题的两种思路
本文介绍了两种判断二叉树是否对称的算法思路。第一种方法是先翻转根节点的任意一侧子树(左或右),然后比较翻转后的子树与另一侧子树是否相同;第二种方法直接比较左右子树是否镜像对称,即比较左子树的左节点与右子树的右节点,以及左子树的右节点与右子树的左节点。两种方法都通过递归实现,时间复杂度均为O(n)。文中提供了两种方法的C语言实现代码,并配有图示说明。
2025-07-25 22:08:07
669
原创 c语言-数据结构-二叉树OJ
本文讲解了二叉树相关的五道OJ题目:1.单值二叉树判断,使用分冶法递归解决;2.二叉树最大深度,类似求树高;3.翻转二叉树,通过交换左右子树实现;4.判断两树是否相同,比较结构与节点值;5.二叉树前序遍历,需注意传参问题。每题均给出代码实现和解题思路,重点分析了递归条件和参数传递的注意事项,如单值树的递归展开图、相同树判断条件的选取以及前序遍历中变量传递的地址问题等。
2025-07-22 11:14:09
961
原创 c语言-数据结构-如何用分冶法求得二叉树的节点数与高度?
本文介绍了三种二叉树问题的分治解法:1.二叉树高度计算:比较左右子树高度并加1;2.节点总数统计:左右子树节点数之和加1;3.第k层节点数计算:递归求左右子树的k-1层节点数之和。通过分治思想,将问题分解为子问题,避免了直接遍历的复杂性,提高了算法效率。文中用学校管理层级比喻解释了递归原理,并给出了详细的递归过程和代码实现分析。
2025-07-19 10:54:57
899
原创 c语言-数据结构-二叉树的遍历
本文介绍了二叉树的四种遍历方式:前序、中序、后序和层序遍历,重点讲解了前三种递归实现的遍历方法。前序遍历顺序为根-左-右,中序遍历为左-根-右,后序遍历为左-右-根。文章通过图示详细说明了每种遍历的执行过程:前序遍历先访问根节点再递归左右子树,中序遍历先递归左子树再访问根节点,后序遍历先递归左右子树最后访问根节点。每种遍历方式都配有对应的代码实现和节点访问顺序图示,帮助理解二叉树遍历的递归过程。
2025-07-16 21:14:21
853
原创 数据结构-为什么双指针法可以用来解决环形链表?-使用O(1)的空间复杂度去解决环形链表的思路
本文介绍了环形链表检测的双指针解法,重点分析了快慢指针不同步长下的相遇条件。当快指针每次走2步、慢指针每次走1步时,二者必然相遇。若快指针步长增大,相遇情况会因初始距离N和环长C的奇偶性而变得复杂:步长为3时,N为偶数或C为奇数才能相遇;步长为4时,需要根据N和C是否为3的倍数来判断。文章通过数学推导证明了不同步长组合下的相遇条件,并提供了代码实现示例。这种分析方法有助于深入理解环形链表的检测机制。
2025-06-12 21:25:26
2008
原创 如何使用deepseek满血版
DeepSeek满血版是一款多功能AI平台,提供文本生成、代码辅助和数据分析等服务。用户可通过官网或应用商店下载,完成注册登录后即可使用。平台支持参数调整和结果优化,高级功能包括结构化提示、示例引导和分步指令等技巧。使用时需遵守内容政策,敏感领域输出建议人工复核。该工具适用于各类智能生成需求,通过多次迭代可获得更优质结果。
2025-06-11 23:21:19
862
原创 数据结构-链表OJ-回文链表,如何将时间复杂度控制为O(N),空间复杂度控制为O(1)?
本篇讲解了用 O(n) 时间复杂度和 O(1) 空间复杂度解决回文链表的思路方法
2025-06-10 23:08:05
632
原创 数据结构-相交链表OJ-如何用环形链表来解决相交链表?
今天讲解了能够将时间复杂度为控制在 O(m + n) 、空间复杂度 控制在O(1) 的解决相交链表的两种解法,同时涉及了快慢指针的思想
2025-06-09 23:13:27
876
原创 数据结构-如果将堆结构应用到TOP-K问题上会怎样?
本文讲解了如何利用堆结构高效解决TOP-K问题(求前K个最大/最小元素)。针对大数据量场景(如100亿数据),传统排序方法内存消耗过大,而堆结构只需维护K个元素的空间。具体实现时:找前K个最大元素建小堆,将剩余元素逐个与堆顶(最小值)比较,更大则替换并调整;反之,找前K个最小元素建大堆。该方法避免了全局排序,时间复杂度优化至O(NlogK)。文中给出c语言代码实现包括建堆、调整和比较替换流程,适用于海量数据场景。
2025-06-05 18:27:34
1075
原创 数据结构-二叉树-如何用c语言玩转堆排序?
堆排序是利用堆数据结构实现的高效排序算法,时间复杂度稳定为O(NlogN),适合大规模数据排序。相比冒泡排序等O(N²)算法,堆排序在数据量大时优势明显。实现时需注意:升序排序应建大堆而非小堆,通过交换堆顶与堆尾元素并调整堆结构完成排序。建堆方式推荐向下调整法,其时间复杂度为O(N),优于向上调整法的O(NlogN)。堆排序空间复杂度低且性能稳定,适用于各类排序场景。后续将介绍基于堆排序思想的topk问题解决方案。
2025-06-04 20:31:01
998
原创 数据结构-二叉树-C语言对堆的代码实现
本文补充讲解了二叉树的相关计算练习,包括结点数量与高度的计算。重点介绍了二叉树的两种存储方式(顺序存储和链式存储)及其适用场景,进而引入堆的概念。堆是一种特殊的完全二叉树,分为大根堆和小根堆,要求父结点始终大于或小于子结点。文章详细讲解了堆的插入、删除操作以及向上调整和向下调整算法,并以小根堆为例展示了c语言代码对堆的实现。最后简要提及堆的初始化、销毁等基础操作,为后续堆排序内容做铺垫。
2025-06-01 20:00:22
1278
原创 数据结构-树与二叉树
本文介绍了树与二叉树的基本概念和应用。树是一种非线性数据结构,由根节点和子树组成,具有层次性。文章详细讲解了树的相关术语(如度、深度、父节点、子节点等)和特性,并指出正确的树结构应避免子节点相交等错误。通过"左孩子右兄弟"法可实现树的遍历。重点介绍了二叉树的两种特殊类型:满二叉树(每层结点达最大值)和完全二叉树(前N-1层满,最后一层连续)。最后给出了二叉树结点数量的计算方法和重要结论(度为0的结点数=度为2的结点数+1)。
2025-05-31 20:30:38
947
原创 c语言-数据结构-链表OJ1
摘要:本文介绍了四种链表OJ题的解法。1.移除链表元素:采用直接删除或新链表尾插法;2.寻找中间节点:推荐快慢指针法;3.查找倒数第k个节点:使用快慢指针保持间距k;4.反转链表:提供两种指针操作方式。每种方法都给出思路图解和代码示例,重点推荐快慢指针等高效解法,同时分析不同方法的复杂度。
2025-05-25 18:20:28
528
原创 c语言之单链表(2)
本篇文章是对上篇文章单链表的补充,并且介绍实现了在指定位置pos以及前后插入删除的功能,后续会继续推出链表oj,双向链表等等讲解。
2025-04-16 21:02:19
591
原创 小白速看!——>一篇文章带你玩转时间复杂度与空间复杂度【数据结构篇】
小白速览——>本文介绍了详细介绍了时间复杂度和空间复杂度,它们是数据结构设计的基础,是理解与设计高效算法的基础,在校招与考研中也占据一席之地。该文非常适合小白阅读,快速掌握时间复杂度与空间复杂度。内容较多,请耐心观看!
2025-04-06 21:37:17
909
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅