自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (13)
  • 收藏
  • 关注

原创 学习笔记-Java简单类的设计(1104更新)

在Java中,类本身就是一种数据类型,与int、String等基本数据类型地位相同。掌握这些面向对象的高级特性,能够让你写出更加优雅、可维护的Java代码!:类数据类型是引用类型,变量存储的是对象的地址引用。是占位图片链接,在实际博客中是无法显示的。

2025-11-04 13:30:46 711

原创 IT疑难杂症诊疗室技术文章大纲

总结IT疑难杂症诊疗的核心思想,鼓励读者通过系统化方法解决问题,提升技术能力。

2025-10-24 20:05:08 253

原创 ATMS课程管理系统 - 从零构建的MySQL实战之旅

📝 ATMS课程管理系统数据库开发摘要 本文介绍了一个基于MySQL的艺培管理系统(ATMS)开发实践,包含四大核心表设计:学生信息(student)、课程信息(course)、班级信息(class)和学生课时消耗(consume)。通过DDL语句实现了表结构创建(含主外键约束),并完成了示例数据插入。主要特性包括:性别使用ENUM类型约束,价格采用DECIMAL精确存储,通过外键建立表间关联。文中还展示了6项数据操作任务,如字段修改、批量更新和表删除等,完整呈现了从数据库设计到基础CRUD操作的教学实践

2025-10-03 10:43:26 941 1

原创 学习笔记-Java简单类的设计(1104更新)

这篇教学笔记系统介绍了面向对象编程中简单类的设计要点。主要内容包括:1)类与对象的基本概念及区别;2)类的创建规范(类名、成员变量、方法的命名规则);3)封装机制(访问修饰符、setter/getter方法、this关键字);4)构造方法特点与方法重载;5)完整类设计步骤(属性封装、构造方法重载、方法设计);6)测试类编写规范;7)static关键字的特性与应用(静态变量、静态方法、静态代码块)。笔记以国庆节祝福开篇,采用emoji标记重点,适合初学者系统学习Java类设计基础。

2025-10-01 09:44:02 858

原创 一道题引出的知识点(List实现(ArrayList)、集合拷贝(构造函数/浅拷贝)、List插入(addAll索引操作)、集合判重(HashSet)、迭代处理(Queue/BFS)、并发修改、索引)

本文解析了LeetCode 3690题"拆分合并数组"的Java解法,重点分析了四个核心知识点:1) 使用Arrays.stream()将int数组转换为Integer列表;2) 通过HashSet和List.of()实现状态存储和初始化;3) 利用subList()和clear()进行列表切片与批量删除;4) 使用防御性拷贝和addAll()实现列表插入操作。该解法采用BFS策略,通过集合判重避免重复处理,时间复杂度取决于状态空间大小,适用于小数据范围的问题。

2025-09-30 19:03:40 827 1

原创 百度之星个人开发票

《百度之星参赛发票开具指南》针对官网无法开票问题,提供解决方案:参赛者需将报名信息(用户名、姓名、手机号、身份证、缴费证明及场次)发送至指定邮箱xiaomage@matiji.net,邮件标题注明"申请发票",附件添加开票信息即可。文中附有操作示意图供参考。(98字)

2025-09-29 17:30:50 264

原创 贪心区间问题:区间选点、最大不相交区间数量、区间分组、区间覆盖,有例题讲解

本文介绍了贪心算法在区间问题中的四种经典应用:1)区间选点问题(选择最少的点覆盖所有区间);2)最大不相交区间数量(选择最多互不重叠的区间);3)区间分组问题(将重叠区间分成最少组);4)区间覆盖问题(用最少区间覆盖目标区间)。每种问题都给出了对应的C++代码实现,核心思想是通过排序和贪心策略(如右端点优先)高效解决问题。这些方法在调度、资源分配等场景中具有重要应用价值。

2025-07-14 17:32:32 613

原创 多维数组排序:Python与C++实现对比

本文对比了Python和C++实现多维数组排序的方法。Python使用sorted()/sort()配合lambda表达式,语法简洁灵活;C++通过<algorithm>的sort()函数,性能更高但代码较复杂。两者都支持多条件排序、自定义规则和稳定排序。Python适合快速开发,C++适合高性能场景。文中给出了优化建议和实际应用示例(如学生成绩排序、坐标点排序),建议根据项目需求选择合适的语言实现。

2025-07-09 21:22:28 616

原创 深入理解树的遍历:从基础到实战

本文全面介绍了树的遍历方法及其应用。首先阐述了树和二叉树的基础概念,包括二叉搜索树、平衡二叉树等常见类型。重点讲解了深度优先遍历(前序、中序、后序)的递归和非递归实现,以及广度优先的层次遍历实现。文章分析了不同遍历方式的应用场景,如目录结构打印、表达式计算等,并探讨了特殊树(N叉树、线索二叉树)的遍历方法。最后提供了复杂度分析和实战题目推荐,帮助读者从理论到实践全面掌握树的遍历技术。

2025-07-06 09:51:06 953 1

原创 归并排序详解:分治思想的经典应用

归并排序(Merge Sort)是一种基于**分治法(Divide and Conquer)**的高效排序算法,由冯·诺依曼于1945年提出。它的核心思想是:1. **分(Divide)**:递归地将数组分成两半,直到子数组长度为1(天然有序)。2. **治(Conquer)**:将两个有序子数组合并成一个更大的有序数组。

2025-06-14 20:47:16 483

原创 STL多种容器和算法的时间复杂

STL(Standard Template Library)提供了多种容器和算法,每种操作的时间复杂度不同。以下是主要容器及其常用操作的时间复杂度分析。根据需求选择合适容器可显著优化性能!

2025-06-10 19:59:22 1189

原创 深入理解C++中的元组(tuple):现代C++的多面手

摘要:本文介绍了C++11中的std::tuple(元组),它是一种存储不同类型元素的固定大小容器。文章详细讲解了元组的创建方法(直接构造、make_tuple、C++17类模板推导)、元素访问方式(std::get、结构化绑定、std::tie)以及高级特性(比较操作、元组拼接、多值返回)。通过示例代码展示了tuple在实际编程中的应用,帮助开发者编写更现代、高效的C++代码。

2025-06-06 21:59:57 381

原创 快速排序算法的证明与边界分析

本文介绍了快速排序算法的基本原理和实现方法。快排采用分治策略,通过选取基准元素将数组分为两部分递归排序。文章提供了以j为分界的快排模板代码,并解释了分区和递归处理的过程。同时通过两道例题展示了快排的应用:一道基础排序题演示了标准快排实现;另一道求第k小元素的题目展示了如何用分治思想在O(n)时间复杂度内解决问题。代码示例包含详细注释,帮助理解快排的核心思想和具体实现细节。

2025-06-01 12:23:02 435

原创 c++集合的基础知识(有例题)

本文对比了C++与Python中集合的实现与特性。C++提供有序的set(红黑树)和无序的unordered_set(哈希表),前者操作时间复杂度为O(log n),后者平均O(1)。文章详细介绍了unordered_set的创建、初始化方法及常用操作,包括插入、查找、删除元素等。针对自定义类型,需提供哈希函数和比较函数。Python集合基于哈希表实现,具有类似特性但语法更简洁。通过对比,开发者可根据需求选择合适实现,有序场景用set,快速查找用unordered_set。

2025-05-28 17:31:09 270

原创 C++中的std::greater:理解与实用指南

在C++标准库中,std::greater是一个非常有用的函数对象(functor),它提供了一种简单的方式来实现"大于"比较操作。这篇博客将深入探讨std::greater的工作原理、使用场景以及在实际编程中的应用技巧。

2025-03-29 21:23:44 512

原创 手写滑动窗口(AcWing 154. 滑动窗口)

当 n 和 k 都很大时,例如 n = 10^6,k = 10^5,暴力解法就会非常耗时。但是正常比赛当中我们不可能全部都手搓,这里就要用到STL里面的deque了。我们用一共数组q[N]来模拟队,front来表示队头,tail来表示队尾。使用单调队的方法可以让我们更快的找到窗口的最小值和最大值。为了降低时间复杂度,我们需要一种更高效的方法。

2025-02-23 21:47:27 417 1

原创 C++ STL 中的 list 容器:用法与实现详解

链表作为一种动态结构,能够根据需要的在运行时灵活的插入、删除数据元素,而且它对储存单元没有过高的要求,不一定要求核内存是连续的、整块单元。相对于数组、字符串,由于 链表存储不连续,因此不能实现对它的随机访问。在链表中查找、定位数据元素效率较低。无论如何,在很多问题中,链表还是能大展身手的,并高效的解决问题。链表(Linked List)是一种线性数据结构,由一系列**节点(Node)**组成。每个节点包含两个部分:数据域:存储实际的数据。指针域:存储指向下一个节点(或上一个节点)的地址。

2025-02-21 23:32:06 1655 2

原创 深入理解C++字符串:从基础到实践

关于字符串的知识介绍

2025-02-12 16:58:53 210 2

原创 STL里面的vector容器

vector作为序列容器,简化了数组的使用,除了保留c++的数组优点外,还提供了方便而灵活的函数,不少算法也可以运用到vector中。值得注意的是vector v4(v1.begin(), v1.end());这种使用迭代器范围来初始化 vector 的方式,在一定条件下可以用于将其他序列容器转化为vector。(v.begin()是获取第一个元素位置,v.end()是获取最后一个元素的位置)先来介绍一下vector的构造和赋值吧。在熟悉vector的构造和赋值后我们再来学习vector的增加和删除。

2025-02-03 16:35:12 628 3

原创 二分算法的模板(没有多的废话)

二分算法的一些模板

2025-02-01 22:22:07 212 1

空空如也

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

TA关注的人

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