自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java面向对象进阶精讲:抽象类、接口、内部类与Object类万字详解

在Java面向对象编程体系中,封装、继承、多态是三大核心思想,而抽象类与接口是实现多态最重要的两种载体,内部类是封装思想的延伸实现,Object是Java所有引用类型的顶层祖宗类,四者相辅相成,构成了Java类体系的底层骨架。很多初学者在入门阶段极易出现几个典型误区:分不清抽象类和接口的使用场景、混淆四种内部类的访问权限与实例化规则、搞不懂equals()和hashCode()成对重写的底层规范、不理解Cloneable接口浅拷贝与深拷贝的本质差异。

2026-06-12 11:39:48 386 8

原创 算法从入门到精通——字符串

本文总结了字符串处理中的基础技巧,重点讲解了四个经典算法题: 最长回文子串:采用中心扩散法,分别处理奇偶长度回文情况,记录最大回文串。 最长公共前缀:通过横向扫描法,依次比较字符串前缀,逐步缩小公共前缀范围。 二进制求和:模拟高精度加法,从低位到高位逐位相加并处理进位。 字符串相乘:模拟高精度乘法,通过竖式计算方法实现字符串乘法。 每个问题都给出了详细解题思路和C++实现代码,并附有优化版本参考。这些基础技巧为字符串处理提供了有效方法,适用于各类编程竞赛和算法面试场景。

2026-06-04 20:17:03 869 26

原创 C++快速上手java备战期末考——运算符,输入输出和数组

本文到此结束,欢迎各位在评论区探讨交流。需要快速复盘、精简学习内容的朋友,别忘了订阅我的快速复习专栏哦,主打专注整合学习中的精华,我们一起加油吧!

2026-05-28 14:28:06 1397 21

原创 算法从入门到精通——位运算

1,按位与:& 有0则为02,按位或:| 有1则为13,按位异或:^ 同为0,异为14,按位取反:~ 1变0,0变11,判定字符是否唯一⭐️(位图的思想)2,丢失的数字⭐️(按位异或的性质)3,两整数之和⭐️⭐️⭐️(加法的模拟加位运算基础性质)4,只出现一次的数字 II⭐️⭐️⭐️(思维+比特位的控制)5,消失的两个数字⭐️⭐️⭐️⭐️本期内容就到这里啦,欢迎大家在评论区一起交流讨论。

2026-05-24 17:56:55 1008 40

原创 算法从入门到精通——前缀和

文章摘要 本文系统讲解了前缀和算法的核心原理与应用场景。前缀和通过预处理数组前i项和,将区间求和优化至O(1)时间复杂度。文章包含: 基础概念:介绍一维/二维前缀和的定义与核心公式 经典模板:提供一维和二维前缀和的代码实现模板 典型例题: 寻找数组中心下标(左右和相等位置) 除自身外数组乘积(左右乘积结合) 通过6道精选题目,从模板题到变式题层层递进,帮助读者掌握前缀和在区间统计问题中的应用技巧。文中所有代码均附详细注释,并特别标注了易错点(如long long防溢出)。适合算法初学者系统学习前缀和这一重要

2026-05-21 19:09:16 2227 34

原创 算法从入门到精通——滑动窗口

滑动窗口的本质其实就是双指针,即同向双指针!如果让你暴力枚举所有区间,时间复杂度往往是 O(n²)。但很多题目里,我们其实没必要“重新遍历”整个区间。这时候,滑动窗口就登场了。用left和right两个指针维护一个动态区间,让窗口像尺子一样在数组或字符串上滑动,从而在线性时间内解决问题。很多看似需要两层循环的问题,都能被优化到 O(n)。1,滑动窗口长度最小的子数组最大连续1的个数 III将 x 减到 0 的最小操作数2,滑动窗口+哈希无重复字符的最长子串水果成篮。

2026-05-18 22:21:47 2536 41

原创 算法从入门到精通——双指针

本文介绍了双指针算法的核心思想与应用场景,重点讲解了三种经典模型:左右指针、快慢指针和滑动窗口。通过LeetCode高频真题(如移动零、复写零、快乐数等)详细解析解题思路,强调双指针如何将O(n²)暴力解法优化为O(n)。文章还总结了数组原地操作、判环、单调性等常见题型,并提供完整代码实现,帮助读者建立双指针思维,适合算法初学者和面试准备者快速掌握这一高频考点。

2026-05-15 19:22:52 2873 43

原创 C++快速上手java备战期末考——初识java

本文是C++快速上手Java系列的第一期,主要介绍了Java语言的特点和基础语法。Java作为面向对象语言,最大特点是可移植性强,通过字节码文件实现"一次编译,到处运行"。文章对比了Java与C/C++在数据类型上的差异,包括新增的byte类型、固定字节大小、char使用Unicode字符集等。重点讲解了Java严格的类型转换规则,强调其强类型特性,以及字符串类型的特殊处理方式。此外还介绍了Java的注释方式、关键字和标识符规则。下期将继续讲解Java运算符相关内容。本文适合有C++基础

2026-05-13 18:00:00 1656 20

原创 快速复习之数据结构篇——二叉树(三)

本文介绍了二叉树链式结构的实现方法,重点讲解了二叉树的三种遍历方式(前序、中序、后序)及其递归实现代码。文章包含二叉树相关选择题和编程题,涉及计算节点个数、叶子节点个数、树高度、查找特定节点等常见操作。还通过LeetCode单值二叉树题目展示了实际应用,提供了递归解题思路和代码实现。全文以递归为核心思想,系统讲解了二叉树的基本操作和典型算法问题。

2026-05-11 20:00:00 1067 33

原创 快速复习之数据结构篇——二叉树(二)

本文介绍了二叉树的顺序存储结构及堆的实现与应用。主要内容包括:1)完全二叉树适合顺序存储,堆作为特殊二叉树使用数组存储;2)堆分为大根堆和小根堆,具有完全二叉树性质;3)详细讲解了堆的向下调整和向上调整算法;4)堆的创建、插入、删除操作实现;5)堆排序算法及其时间复杂度分析;6)TOP-K问题的堆解决方案。文章包含代码示例和选择题练习,下期预告将介绍二叉树的链式存储结构。适合数据结构学习者快速复习堆相关知识。

2026-05-09 21:32:14 964 35

原创 快速复习之数据结构篇——二叉树(一)

本文介绍了二叉树的基本概念、性质及存储结构。主要内容包括:1)树的基本概念如度、层次、深度等;2)二叉树的定义和特性,包括满二叉树和完全二叉树的区别;3)二叉树的重要性质,如n0=n2+1等;4)二叉树的顺序存储和链式存储两种方式。文章还包含5道二叉树基础选择题及其答案,帮助读者巩固知识点。适合计算机专业学生或算法爱好者学习二叉树基础知识。

2026-05-08 22:14:15 723 14

原创 快速复习之数据结构篇——栈和队列

本文介绍了栈和队列的数据结构及其应用。栈部分详细讲解了栈的概念、实现方式(数组/链表/双端队列)以及典型应用——括号匹配问题,通过LeetCode例题展示栈的实际应用。队列部分阐述了队列的实现方式(链表更优)及其在BFS算法中的应用,以图像渲染问题为例演示队列的使用场景。文章还提供了博主专栏链接,方便读者深入学习相关算法知识。

2026-05-07 23:16:42 465 25

原创 快速复习之数据结构篇——链表

本文系统介绍了链表数据结构及其常见操作。主要内容包括:链表的基本概念(非连续存储、通过指针实现逻辑顺序)和分类(8种组合,常用单链表和双链表)。重点讲解了链表的经典面试题解法:移除元素时使用哨兵节点处理头节点;反转链表采用三指针法;快慢指针法查找中间节点和倒数第k个节点;合并有序链表使用虚拟头节点;分割链表需注意置空尾指针;判断回文需结合反转和双指针;相交链表通过长度差对齐;环形链表检测使用Floyd算法。文章强调画图辅助理解,并提供了详细代码实现和优化技巧,特别是快慢指针的数学原理分析。

2026-04-30 21:40:46 749 24

原创 快速复习之数据结构篇——顺序表

顺序表是一种基于数组实现的线性数据结构,支持快速随机访问。文章首先介绍了顺序表的基本概念,分为静态和动态两种实现方式,重点讲解了动态顺序表的常见操作接口(如push_back、insert等)。随后通过三个典型算法题(移除元素、数组去重、合并有序数组)展示了双指针技巧在顺序表操作中的应用。最后指出顺序表的三大缺点:插入删除效率低、扩容开销大、空间浪费,并引出链表作为改进方案。全文以C++代码示例为主,兼顾理论讲解和实践演示,适合数据结构初学者快速掌握顺序表的核心知识点。

2026-04-26 20:10:45 681 28

原创 算法基础之——二分答案

二分查找的核心在于问题具有「二段性」,即答案区间能被分成满足和不满足条件的两部分。本文系统讲解了二分查找的原理、模板和应用场景:1)基础模板包括朴素二分、查找左右边界;2)进阶应用涵盖平方根、旋转数组最小值、峰值检测等;3)提供9道典型例题,从704题二分查找基础到蓝桥杯冶炼金属难题,循序渐进。关键点:理解二段性本质,掌握不同场景的边界处理(如向上/向下取整避免死循环),并通过配套题目巩固模板应用。最后强调按顺序刷题的重要性,确保算法能力阶梯式提升。

2026-04-15 17:27:52 526 27

原创 从素数定义到欧拉筛,一步搞定数论基础之素数

本文系统介绍了素数的定义及其筛选方法。首先解释了素数(只能被1和自身整除的自然数)与合数的区别,然后详细讲解了三种素数筛选算法:试除法(优化到√n)、埃氏筛(标记素数倍数)和高效的欧拉筛(线性筛)。重点剖析了欧拉筛的核心原理——通过最小质因子唯一标记合数,确保每个数只被筛一次,时间复杂度为O(n)。文章包含代码实现和数学证明,适合算法初学者掌握数论基础。

2026-04-01 09:39:14 492 21

原创 动态规划入门(一):斐波那契模型与路径问题,10 题吃透状态转移

本文总结了动态规划在解决各类问题中的应用,重点分析了斐波那契数列模型、路径问题和地下城游戏等典型案例。文章指出动态规划的核心在于找到正确的状态转移方程,并通过递推公式求解。在斐波那契数列模型中,展示了递归和动态规划两种实现方式;在路径问题中,详细讲解了不同路径、带障碍路径、珠宝价值等问题的解法;特别针对复杂的地下城游戏问题,揭示了正向DP的局限性,提出了反向DP的正确解法,强调必须同时考虑当前血量和历史最低血量。通过多个实例代码,系统性地展示了动态规划在不同场景下的应用技巧和实现方法。

2026-03-28 23:45:31 494 15

原创 快速复习之——动态内存管理

本文摘要:介绍了C语言动态内存管理的核心概念,包括malloc、calloc、realloc和free等函数的用法及注意事项。重点分析了常见的内存管理错误案例,如内存泄漏、野指针等问题,并提供了柔性数组的定义和使用方法。文章还总结了动态内存分配的优点和注意事项,强调正确使用内存管理函数的重要性,最后概述了C/C++程序内存区域的划分。内容涵盖动态内存分配、释放、错误处理等关键知识点,对理解内存管理机制具有指导意义。

2026-03-23 18:27:23 531 18

原创 快速复习之——自定义类型

本文介绍了C语言中结构体的相关概念和应用。主要内容包括:1.结构体类型的声明、创建和初始化方法,以及匿名结构体和自引用结构体;2.结构体内存对齐规则及其原因(空间换时间),通过示例分析不同结构体的内存占用;3.结构体传参建议(传地址而非整个结构体);4.位段的概念、特点及使用注意事项;5.联合体的声明、特点(共享内存)和大小计算规则,并给出实际应用示例;6.枚举类型的定义、优点(相比#define)和使用方法。文章通过代码示例详细说明了这些数据结构的特点和应用场景。

2026-03-03 10:00:00 1791 12

原创 快速复习之——内存函数和数据在内存中的存储

本文介绍了C语言中常用的内存操作函数及其实现原理,包括memcpy、memmove、memset和memcmp。重点分析了这些函数对字节操作的特点,以及模拟实现方法。同时探讨了数据在内存中的存储方式,包括整数的补码表示、大小端字节序判断,以及浮点数按IEEE 754标准的存储格式。通过多个代码示例展示了类型转换、整形提升等概念在实际编程中的应用,并解释了相关输出结果的原因。文章最后还提供了一个关于整型与浮点型数据相互转换的典型例题分析。

2026-03-02 20:16:00 685 10

原创 C语言文件操作完全指南

一个操控输出设备的把柄1,标准流,FILE*类型的指针FILE本质上是一个结构体,存文件的信息。

2026-01-28 20:06:44 1140 9

原创 字符串函数详解

本文介绍了C语言中常用的字符串处理函数,主要包括:1)字符分类函数(islower等)和转换函数(tolower/toupper);2)基本字符串操作函数(strlen、strcpy、strcat、strcmp)的使用要点和模拟实现方法;3)带长度限制的安全版本函数(strncpy、strncat、strncmp);4)字符串查找(strstr)和分割(strtok)函数;5)错误处理函数(strerror/perror)。重点说明了各函数的使用注意事项,如目标空间大小、'\0'处理等,并提供了部分核心函数

2026-01-25 20:25:00 1102 7

空空如也

空空如也

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

TA关注的人

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