自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构:并查集,种类并查集,带权并查集

最近学了并查集,写篇博客巩固一下~有时候,我们并不关心数据之间的前后关系,也不关心数据的层次关系。一些确定元素只是单纯的聚集在一起,这样的元素聚集体被称为集合。当希望知道某个数据是否存在一个集合中,或者两个元素是否在同一个集合中时,就需要使用一些集合数据结构来维护集合元素之间的关系。而并查集就是一个维护集合的数据结构。

2026-01-08 11:42:47 937

原创 算法入门:二分查找与二分答案(含c++代码)

数据必须有序,比如升序,如果数据无序需要进行预处理。数据结构必须支持时间复杂度O(1),比如说数组。查找内容必须是一段区间。

2025-12-29 10:04:33 894

原创 程序优化策略:以空间换时间,单调队列和单调栈讲解(含c++代码)

双指针并不是某种特定的数据结构,而是一种算法设计思想:通过维护一左一右两个“指针”,历遍数组,从而解决问题。双指针的本质上是使用队列维护一个符合条件的区域,右指针增加相当于入队,左指针增加相当于出队。双指针之所以高效,是因为它利用了数据的结构性质,避免了无意义的操作,对枚举进行了剪枝。单调队列就是维护一个单调增或减的队列,在动态变化的窗口中快速获取最大值或最小值。它的核心思想是淘汰“不可能成为答案”的元素,只保留在当前状态下,可能成为答案的元素。什么意思?

2025-12-27 16:26:50 952

原创 C++算法入门:如何用递推与递归解决问题,从原理到实战详解

优先用递推:如果问题可以轻松拆解为 “基础 case→逐步推导”(可以写出递推式),且追求高效(时间 / 空间),比如序列生成、动态规划问题,优先用递推;优先用递归:如果问题是树形结构、回溯类(如排列组合、迷宫问题),或分解逻辑比累积逻辑更清晰,优先用递归(复杂场景可加记忆化优化);避坑提醒递归注意设置明确的边界,避免无限递归;递归深度较大时(如 n>1e4),优先用递推,避免栈溢出;重复计算严重的递归问题,一定要加记忆化缓存。

2025-11-26 13:06:45 861

原创 初入算法:带你解决排序难题(含C++代码),从原理到实战的全解析!

若sort函数只能进行升序排序,未免有些太过鸡肋。实现自定义排序规则的方式有很多,我这里只介绍自定义函数指针的方法。// 自定义比较函数:按绝对值降序排序// 传入函数指针cout << "按绝对值降序:";// 输出:-5 -4 -3 2 1return 0;简单来说就是需要你自己写一个返回值为bool的函数,a和b代表的是数组里作比较的两个元素。如果返回值为true则a排在b的前面,反之,b排在a的前面。sort不光能对数字进行排序,还可以对结构体进行排序。// 定义学生结构体。

2025-11-26 01:05:43 1119

原创 一文吃透 C++ cin 和 cout:从基础到进阶的输入输出指南

cin和cout是 C++ 输入输出的基础工具,掌握它们的核心用法能应对大部分场景:​基础输出:cout << 内容1 << 内容2 << endl;,配合<iomanip>控制格式。​基础输入:cin >> 变量1 >> 变量2;,注意数据类型匹配。​特殊场景:用getline读整行字符串,用ignore清缓冲区,用clear恢复输入状态。​建议新手多写代码实践,尤其是 “缓冲区问题” 和 “格式控制”,这些是面试和开发中常遇到的考点。如果遇到其他问题,欢迎在评论区交流!

2025-10-14 17:07:48 2275 1

原创 为什么链表中存储的是节点地址而不是节点对象?探究计算机存储数据的底层逻辑。

存储对象的设计不能让链表有具“链”的功能,会让链表摇身一变,成为“俄罗斯套娃”表。这种表具有分明的大小,上下级关系,有着严格的顺序。想象一下,你不可能在两个俄罗斯套娃中间再加一个套娃吧,如果你不断的新增节点,这个套娃就会越来越大,无限嵌套,导致内存浪费。

2025-10-13 11:53:12 610

原创 栈和队列:从生活场景到代码实现

如果你刚接触编程,可能会疑惑:“有了数组能存数据,为什么还要学栈和队列?” 其实栈和队列不是 “存储工具”,而是 “有规矩的处理工具”—— 就像生活中 “叠盘子要从上面拿”“排队要按顺序来”,它们用严格的规则帮我们更安全、高效地处理数据。今天就用最直白的方式,带你吃透栈和队列。

2025-10-12 16:41:56 580

原创 深入理解 C++:指针、结构体与链表的核心概念与实践

指针的定义格式为:数据类型 *指针变量名;,其中*是指针声明符,用于表明该变量是指针类型。// 定义一个指向int类型的指针pint *p;// 定义一个int类型变量a,并赋值为10int a = 10;// 将变量a的内存地址赋值给指针p(&是取地址符)p = &a;// 通过指针修改变量a的值*p = 20;//输出值为20。

2025-10-07 15:32:37 962

原创 C++:实现数组的增删改排序

本文实现了数组的各种基本操作,包括添加、删除、排序和查找等功能。这些操作虽然简单,但却是理解更复杂数据结构(如链表、栈、队列等)的基础。在实际开发中,数组操作需要特别注意边界检查,避免数组越界访问导致的程序错误。同时,对于大规模数据,某些操作(如头部插入、删除)的效率可能不高,这时可以考虑使用其他数据结构如链表来实现。通过亲手实现这些基本操作,我们可以更深入地理解数组的特性和工作原理,为后续学习更复杂的数据结构打下坚实的基础。

2025-10-04 00:17:41 861

原创 Java小游戏设计:制作一个贪吃蛇小游戏

对于Java初学者而言,贪吃蛇小游戏是一个很好的练手项目,接下来分享一下我的贪吃蛇游戏的设计思路。

2025-09-09 13:03:03 493

原创 用Java写一个象棋游戏

实现重新开始十分简单,用我们一开始写的reqipan方法就行。paint方法添加绘制选中框功能。

2025-08-30 03:57:32 522

原创 深入理解 Java 接口:从概念到实践的全面解析

Java 接口是面向对象编程中不可或缺的一部分,它通过定义规范、实现多态、解耦代码等方式,为程序的设计和开发带来了极大的灵活性和可扩展性。掌握接口的使用,不仅能写出更优雅、更易维护的代码,还能深入理解面向对象的设计思想。在实际开发中,合理运用接口,能让我们的程序架构更加清晰,更好地应对需求的变化。

2025-08-24 00:13:17 672

原创 Java开发笔记:设计一个五子棋小游戏(一行一个注释,简单详细,希望对你能有所帮助)

基本原理:用户每落一次子,就会判断一次胜负,判断方法是检测落下的棋子八个方向的棋子颜色,如果相同则count++,count=5则获胜。这里需要注意,输赢判断必须要在黑白切换之前,不然会出bug。

2025-08-22 17:51:46 478

原创 手把手教你用Java写一个计算器(一行一个注释,保证能教会你)

/记录下按钮的文本//判断按钮类型并调用方法ClearAll();Percent();

2025-08-21 01:47:17 944

原创 Java学习笔记:类的继承

子类创建的对象 可以将对象的引用存在一个父类类型变量名。以上面的代码为例。//创建一个对象us1属于大学生类//由于大学生类是学生类的子类,所以变量s1可以对于us1.//但是s1是一个学生,而不是一个大学生,所以s1不能调用大学生类中的方法,以及us1的英语四级分数。//s1.CET4=0 这样写是错的//

2025-08-20 16:03:25 170

原创 Java学习笔记:利用按钮事件监听器与数组实现登录注册界面

1.创建一个类 实现 ActionListener 接口。2.将接口中的方法 复制到类中。3.在方法中处理事件 实现点击按钮后需要执行的代码。4. 按钮对象在哪里,你就在哪里创建一个监听器对象。5.使用按钮调用addActionListener方法,添加监听对象。1.线性结构:按照顺序存储取出数据。1:数据类型[] 数组名={元素1,元素2,元素3,元素4,元素5}; 初始化好的数据,长度就是元素的个数。赋值:arr[2]=100; 创建两个数组,用来容纳用户名与密码;登录功能;

2025-08-13 18:32:17 149

原创 Java学习笔记:类与对象

面向对象编程有诸多优势,其核心特点有:封装:通过隐藏对象的内部状态,只通过公共方法与外界交互,保护了数据安全性,简化了复杂性。继承:允许新类从现有类中派生,实现代码重用,促进系统的层次化结构,增强了扩展性。多态:同一操作可适用于不同类型的对象,使代码更加灵活,减少了条件判断的需要。抽象:通过抽象类和接口定义通用概念,简化设计,提高系统的灵活性和可扩展性。

2025-08-07 14:19:50 236 1

空空如也

空空如也

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

TA关注的人

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