- 博客(69)
- 收藏
- 关注
原创 【Java 学习】:抽象类&接口
本文详细介绍了Java中的抽象类和接口的概念到底是什么,以及其特性和作用。抽象类是不能实例化的,主要用于被继承,通过子类重写抽象方法实现多态。接口是一种特殊的抽象类,包含全局常量和抽象方法,一个类可以实现多个接口,从而实现多继承的效果。文章通过实例代码展示了如何使用抽象类和接口,并总结了两者的区别,强调了它们在面向对象编程中的重要性
2024-09-07 14:49:07 1768 166
原创 【Java 学习】:内部类详解
本文介绍了Java中的内部类概念,包括实例内部类、静态内部类、局部内部类和匿名内部类的定义、特点及使用场景。内部类是Java中实现封装的一种方式,可以访问外部类的所有成员,常用于回调函数和事件处理。实例内部类需要外部类实例化,静态内部类则可以直接通过外部类名访问,局部内部类仅在其定义的方法或代码块内有效,而匿名内部类通常用于一次性实现接口或类。
2024-09-04 20:36:22 1774 101
原创 【C++算法】分治(快排 & 归并)
1. 引言,进行问题规模缩减,划分子问题(这里子问题相互独立而且和原问题解的性质是相同的,只是问题规模缩小了)。如果子问题的规模仍然不够小,再进行子问题划分,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止,最后求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解。
2024-09-03 14:13:19 748 41
原创 【Java 基础】:三大特征之多态
本文详细介绍了Java中的多态性,包括多态的基本概念、继承、多态的实现条件、重写、向上转型等。多态性允许父类引用指向子类对象,提供了代码的灵活性和可扩展性,但也存在不能使用子类特有功能的缺点。通过实例展示了如何实现和利用多态性。
2024-09-03 13:17:05 1114 79
原创 【Java 基础】三大特征之继承
文章详细阐述了Java编程中继承的概念,包括继承的概述、优缺点、变量访问特点、super关键字的使用、构造方法的访问以及方法的重写。强调了子类如何扩展父类的功能,同时讨论了组合和继承的关系
2024-09-02 18:53:10 985 49
原创 【Java 基础】类和对象(构造&this&封装&static&代码块)
本文详细讲解了Java中类和对象的基础概念,包括类与对象的定义、静态关键字的应用(静态变量、方法、代码块和内部类),this关键字的用法,以及面向对象特性、构造方法、。同时还介绍了代码块的不同类型及其作用,最后还进行了一些拓展。
2024-09-02 14:11:31 1692 92
原创 【C++算法/学习】位运算详解
✨🌏📃:在计算机内部,数是以「二进制(Binary)」的形式来进行存储。位运算就是直接对数的二进制进行计算操作,在程序中使用位运算进行操作,会大大提高程序的性能。:由 0 和 1 两个数码来表示的数。二进制数中每一个 0 或每一个 1 都称为一个「位(Bit)」。1. 位运算的运算符<<<<>>>>2. 位运算的性质。
2024-08-26 21:44:38 1323 107
原创 【C++】模拟(例题 & 学习)
本文主要介绍了编程竞赛中应对模拟题目的技巧,强调理解题意、理清思路、编写可读性强的代码以及多做练习以培养题感。通过一些具体的题目实例,详细解析了解题过程和代码实现,帮助参赛者提升解决这类问题的能力。
2024-08-26 21:44:14 741 14
原创 【C++例题 / 训练】滑动窗口(总结&&例题)
本篇主要总结关于滑动窗口的相关做题技巧与注意事项,滑动窗口也用到了双指针的内容,可以参考这篇文章,本篇主要用于在了解滑动窗口的构造后,快速掌握滑动窗口的做题技巧与做题模板,便于以后复习参阅经典例题如下。
2024-08-21 21:51:02 975 97
原创 【C++例题 / 训练】二分算法(模板 & 例题)
以在一个升序数组中查找一个数为例,每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需到右侧查找;该题相比于上题,该题有多个峰值存在,故在两个封顶之间的区间内,从左到右一定递增,故套用模板二,找区间左端点即可。3、该区间对题目具有单调性,即:在区间中的值越大或越小,题目中的某个量对应增加或减少。注:封顶的左边区间,一定是递增的,因此套用模板三即可,找最右端点。该题仍具有二段性,左边递增,右边递减,用二分查找算法,
2024-08-21 21:50:12 1376 38
原创 【Linux详解】进度条实现 && Linux下git 的远程上传
【Linux必备工具】自动化构建工具makefile的使用详解-CSDN博客💢缓冲区是提高系统数据读写效率的重要机制。理解和有效利用缓冲区及其刷新策略,可以显著提升程序性能和资源利用效率。以上就是进度条实现 && Linux下git 的远程上传的全部内容啦!!!💞 💞 💞!!祝大家天天开心。
2024-08-15 10:15:13 5647 84
原创 【C++高阶】:特殊类设计和四种类型转换
✨ 人生如梦,朝露夕花,宛若泡影 🌏📃个人主页:island1314🔥个人专栏:C++学习⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 特殊类设计和四种类型转换:1. 特殊类设计1.1 无法被拷贝的类1.1.1 C++98的做法:1.1.2 C++11的做法:1.2 只能在堆上创建对象的类1.3 只能在栈上创建对象的类🍉1.3.1 实现一:🥝1.3.2 实
2024-08-11 17:55:55 1721 37
原创 【Linux必备工具】自动化构建工具makefile的使用详解
项目构建时遇到的各种挑战如文件编译顺序、库链接、依赖文件的管理等,在不同开发环境中会有不同的解决方案。在环境中,这些问题往往被自动处理,运行直接Ctrl + F5就可以了,编译个项目非常轻轻松松。但那是因为 VS 帮你自动维护了对应的项目结构!那如果我们需要去手动实现呢:多文件 我们应该先编译哪一个程序?链接需要哪些库?整个项目结构,该如何维护......在 Linux 环境中,我们需要更手动、细致地管理这些方面。为了解决这个问题,Linux 提供了自动化构建工具 Makefile。
2024-08-10 13:02:11 1761 45
原创 【C++高阶】:自定义删除器的全面探索
这篇文章主要是对之前智能指针的一个小小的补充,没有看过智能指针的读者朋友们,可以参考下下面这篇博客【C++高阶】:智能指针的全面解析-CSDN博客int main()// 创建一个shared_ptr,管理一个打开的文件// 使用fclose作为定制删除器"test.txt"// 创建一个shared_ptr,管理一个打开的文件 // 使用fclose作为定制删除器 std::shared_ptr file (fopen( "test.txt" , "w" ), fclose);
2024-08-07 21:34:03 1298 99
原创 【C/C++笔记】:易错难点3 (二叉树)
首先可以将root放入队列中,由于root的level=0,所以从其出发的可以直接到达点的level=1,将root从队列中弹出,然后将level=1的点放入队列中,因此现在队列的所有节点的level=1。将一棵有100个结点的完全二叉树从根这一层开始,开始进行层次遍历编号,那么编号最小的叶节点的编号为(),则编号为 98 的节点的父节点编号为()。在一颗度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,则叶子结点有( )个。i=0,i为根节点编号,无双亲节点。
2024-08-07 20:49:54 1231 50
原创 【C++高阶】:智能指针的全面解析
以上就是智能指针的全部内容啦,后面我会单独出一篇关于自定义删除器的博客,敬请期待咯!!!💞 💞 💞!!祝大家天天开心。
2024-08-07 20:49:25 1200 90
原创 【C++高阶】:C++11的深度解析下
【C++高阶】:C++11的深度解析上-CSDN博客以上就是C++11的全部内容啦!!祝大家天天顺心如意。
2024-08-01 16:29:27 2537 84
原创 【C++高阶】:C++11的深度解析上
相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多,所以我们要作为一个重点去学习。
2024-07-30 22:07:09 1905 86
原创 【C++高阶】哈希的应用(封装unordered_map和unordered_set)
【C++高阶】哈希函数底层原理全面探索和深度解析-CSDN博客之前我们已经学习了如何手搓哈希,现在让我们来对哈希进行改造,并且封装成unordered_map和unordered_set。注意:本篇我们采用开散列的方式来模拟实现unordered//转成数字,把key// 特化template<>hash *= 31;hash += e;namespace hash_bucket //哈希桶-链式template<class T> //用一个值来确定底层存的是什么*/
2024-07-30 16:58:32 889 38
原创 【C++高阶】哈希函数底层原理全面探索和深度解析
本文旨在揭开哈希算法的神秘面纱,带领大家深入探测哈希的底层世界。从哈希函数的内部逻辑出发,探讨其如何通过一系列的数学变换与位操作,将任意长度的输入数据映射为固定长度的输出值。同时逐步探索哈希表的数据结构冲突解决策略以及内存管理技巧。通过详细剖析哈希函数的内部逻辑与实现方式,我们将揭示那些隐藏在高效与安全背后的智慧与努力return//转成数字,把key// 特化template<>{ // 避免因为顺序不一样而产生一样的值 BKDR// 避免 abc,acb同值不同意hash *= 31。
2024-07-28 15:51:09 1186 58
原创 【C++】红黑树的应用(封装map和set)
【C++】红黑树的全面探索和深度解析-CSDN博客之前我们已经学习了如何手搓一棵红黑树,现在让我们来对红黑树进行改造,并且封装成map和set.map 和 set 的底层本质上还是复用,通过对红黑树的改造,再分别套上一层 map 和 set 的 “壳子”,以达到 “一树二用” 的目的。在改造红黑树的过程中,我们应该就解决以下几个需要重点解决的问题:📒(1) 对红黑树节点的改造。
2024-07-28 11:35:16 1474 62
原创 【算法/训练】:动态规划DP
先创建一个 dp[ n + 2 ][ m + 2 ],然后让dp[ 0 ][ 1 ] = 1 或者 dp[ 1 ][ 0 ] = 1。注意这样初始化的时候,x需要+1,y也需要+1.dp[i][j] 表示:从[0, 0]出发,到底[i, j]位置,一共有多少种方法。当走到马可以走的地方,dp[ i ][ j ] = 0;对输入的字符矩阵我们按照要求将其。故(i,j)位置的积分应该为dp。对于第一行和第一列我们应该特殊处理,利用。,然后我们就可以按照dp。
2024-07-24 20:20:27 1801 33
原创 【C++】红黑树的全面探索和深度解析
RED,BLACK:_kv(kv){}public:~RBTree()//根节点默认为黑色// 新增节点。颜色红色给红色elsewhile (parent && parent->_col == RED) //当父亲节点为红色,则出现了连续的红色,不符合条件// g// p uif (uncle && uncle->_col == RED) //叔叔存在并且为红//往上面走else。
2024-07-24 20:20:11 1229 78
原创 【C++例题/训练】:前缀和&&差分
前面我们已经通过【算法/学习】前缀和&&差分-CSDN博客学习了前缀和&&差分的效相关知识,现在我们开始进行相关题目的练习吧。
2024-07-22 22:38:05 973 53
原创 【算法/学习】前缀和&&差分
对于一个给定的数列a,其中a[1],a[2]…在构造时,只需要将b[1]看做在[1, 1]区间上加上a[1];一维差分数组的构造也很简单,即a[1] = b[1], b[2] = a[2] - a[1], b[n] = a[n] - a[n-1];始终要记得,a数组是b数组的前缀和数组,比如对b数组的b[i][j]的修改,会影响到a数组中从a[i][j]及往后的每一个数。注意:求 [ l, r ]的和是s[ r ] - s[ l - 1],之所以要 l - 1是因为,a[ l ] 也包括在内。
2024-07-22 17:08:02 1021 39
原创 【C/C++笔记】:易错难点2
public:public:CBook() {解答:当需要在const方法中修改对象的数据成员时,可以在数据成员前使用mutable关键字,防止出现编译出错。public:// 如果不加就会出错// 定义const方法。
2024-07-21 22:29:32 992 15
原创 【C++高阶】:AVL树的全面探索和深度学习
前面我们学到了二叉搜索树,【C++高阶】二叉搜索树的全面解析与高效实现虽然二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法,即AVL树,它以其独特的平衡机制和高效的搜索性能,成为了一颗璀璨的明星。
2024-07-20 10:16:43 1528 78
原创 【C++高阶】高效数据结构的探索(map&&set)
【C++深度学习】二叉搜索树的全面解析与高效实现-CSDN博客通过之前对二叉搜索树的学习,我相信大家对set和map也应该有所了解,set就类似于二叉搜索树的K模型,而map就类似于二叉搜索树的KV模型,下面就让我们进入对其的了解吧,踏上这神秘的学习之旅这里推荐两个题目让大家练习一下,方便巩固set与map前K个高频单词两个数组的交集%5Clog%20N。
2024-07-18 17:02:46 1126 58
原创 【C/C++笔记】:易错难点1
要改成(*f1)(s)才正确。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且在主调函数中,函数返回值必须赋给同类型的指针变量。其次,我们知道,数组名代表的是首元素的地址,我们访问数组中的元素一般用arr[1]的形式;*f1(s)中()的优先级比*高,()先与f1(s)结合,返回结果是char,*f1(s)是对返回结果。首先,在这个题目中我们应该明确的是:在二维数组中,二维数组的数组名是代表首元素的地址,而。D、要正常使用f1应该使用(*f1)(s),与f1(s)效果相同。
2024-07-14 16:40:37 63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人