自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机组成原理——定点数和浮点数的表示和运算

本文系统介绍了计算机中数的表示与运算方法。主要内容包括:1)定点数的表示与运算,涵盖移位规则、补码加减及溢出判断;2)浮点数的表示形式、规格化处理及与定点数的比较;3)IEEE754标准的具体规范,包括数符、尾数和阶码的编码方式;4)浮点运算步骤(对阶、尾数求和、规格化、舍入和溢出判断)。特别强调了算术移位的不同类型处理、浮点数的规格化形式,以及通过阶码判断浮点数溢出的方法。文章通过具体示例说明了不同表示方法下的数值计算过程。

2026-06-08 18:11:15 401

原创 SpringBoot和MyBatis框架·速通版

本文摘要: 文章系统介绍了Java主流后端开发框架SpringBoot与MyBatis的整合应用。首先概述了SpringBoot的核心优势(简化配置、内嵌Tomcat)和MyBatis的数据库操作能力,详细说明项目搭建步骤,包括依赖配置、IOC/DI实现(@Component、@Autowired)和分层架构设计(Controller-Service-Mapper)。重点演示了基于三层架构的CRUD接口开发,涵盖实体类定义、MyBatis注解式SQL编写(@Select/Insert等)及RESTful接口

2026-06-08 00:10:19 650

原创 二分 + 贪心经典题型(高频:分配工人、分配货物、运输装载、加油站补油)

二分答案是一种解决最值优化问题的通用方法,核心思路是:假设答案X,用贪心算法验证X是否可行,通过二分调整X的范围。常见题型包括: 最小化最大值(如货物装车、工人搬货、修公路): 确定载重/工期的上下界 用贪心计算当前X所需资源数 二分调整X直到找到满足条件的最小值 最大化最小值(如跳石头、放牛问题): 假设最小间距X 贪心计算需要移除的障碍物数量 二分寻找满足条件的最大X 资源分配问题(如加油站): 二分资源容量(油箱大小) 模拟过程计算资源使用次数 寻找满足限制的最小容量 这类问题的代码框架高度一致:初始

2026-06-03 21:25:04 313

原创 ”二分“高频题型总结:最小最大值、最大最小值、满足条件最小 / 最大

题目要求什么的最值X,就二分谁,check函数把mid值传进去,在mid的前提下根据题目中的约束条件看是否满足题目的要求。然后做对应的left or right的调整1. 整数二分:最小化可行值(分木板模板)//防溢出//答案L2. 整数二分:最大化可行值(放牛模板)L=mid+1;//答案ans3. 实数二分模板(循环 100 次)i<100;

2026-06-03 21:23:22 558

原创 状态压缩dp——带权旅行商问题(TSP)

本文介绍了使用状态压缩动态规划解决带权旅行商问题的思路。由于一维DP无法记录已访问的星球信息,需要采用二维状态压缩DP:dp[mask][u]表示已进攻星球集合为mask(二进制编码),当前在星球u时的最小能量消耗。其中mask的每一位对应一个星球的访问状态,总状态数为2^n。算法通过三重循环遍历所有状态转移,最终在所有星球都被访问的状态中取最小值。该解法时间复杂度为O(2^n * n^2),适用于星球数量较少的情况。代码实现了从初始化状态、状态转移到最终结果计算的完整过程,并输出保留两位小数的最小能量值。

2026-06-01 13:57:09 615

原创 组合计数 + 拓扑序计数问题

摘要 本文分析了数据库操作顺序合法性的计数问题。给定INSERT和DELETE两种操作,要求插入必须在删除前执行。关键结论是:合法顺序数等于总操作数阶乘除以2的k次方,其中k是成对(INSERT,DELETE)的数量。解题时预处理阶乘,用快速幂求逆元计算模数。核心思路是将问题转化为满足拓扑约束的排列计数,利用组合数学公式高效求解。代码实现通过哈希表统计操作对,应用费马小定理处理模数下的除法运算。 关键词:排列计数、拓扑序、逆元、模运算、组合数学

2026-05-31 12:56:36 421

原创 并查集(高频考点)——连通块、朋友圈、 Kruskal 最小生成树

摘要 并查集是一种高效处理分组查询和合并的数据结构,核心功能是查找(find)和合并(union)。通过路径压缩优化查找效率,广泛应用于连通性判断、朋友圈统计和最小生成树(Kruskal算法)。带权并查集扩展了关系推导能力,适用于食物链、区间和等复杂约束问题。典型应用包括三类场景:连通块检测(普通并查集)、最小生成树构建(Kruskal+并查集)以及关系推理(带权并查集)。关键实现包括父节点数组维护、路径压缩和权值回溯更新,能高效解决分组关联和约束满足问题。

2026-05-29 16:13:26 452

原创 计算机组成原理之系统总线——总线控制

本文系统介绍了计算机系统总线的核心概念与工作机制。主要内容包括:总线的基本定义与作用,三类总线(片内、系统、通信)的分类及特点,总线特性与性能指标(带宽、宽度等)。重点阐述了总线控制机制,包括集中式判优的三种方式(链式查询、计数器定时、独立请求)及其优缺点,以及四种总线通信方式(同步、异步、半同步、分离式)的特点与适用场景。文章通过对比分析不同控制与通信方式的性能差异,揭示了总线设计在计算机系统中的关键作用,为理解计算机硬件协同工作原理提供了系统性的知识框架。

2026-05-27 12:35:31 614

原创 MySQL基础篇:SQL语法、约束、多表查询、事务...

本文系统介绍了SQL数据库操作语言的核心知识点。主要内容包括:SQL语法基础(DDL、DML、DQL、DCL语句)、常用函数(字符串、数值、日期、流程函数)、约束机制(外键约束)、多表查询(连接查询、子查询)以及事务管理(四大特性、隔离级别)。文章详细讲解了各类SQL语句的语法规则和使用场景,如创建表、增删改查数据、分组排序、分页查询等操作,并深入分析了多表关系的处理方式和事务并发问题的解决方案。通过具体示例演示了SQL在实际数据库操作中的应用,为数据库开发和管理提供了全面的技术参考。

2026-05-26 18:36:55 911

原创 计算机组成原理之存储器 详解

本文系统介绍了计算机存储器的分类、结构和工作原理。主要内容包括:1. 存储器层次结构(缓存-主存-辅存)及其作用;2. 主存储器的组成、编址方式、技术指标及与CPU的连接方法;3. 高速缓冲存储器的工作原理、地址映射方式和替换算法;4. 辅助存储器的特点及磁盘存储器的结构参数和访问特性。文章重点阐述了如何通过存储层次设计、并行访问技术等手段提高存储系统性能,并详细解析了各类存储器的关键技术指标和实现原理。

2026-05-25 16:35:12 959

原创 前缀和——高频考点:子数组和、区间和、和为 K 的子数组

本文系统介绍了前缀和算法及其应用。一维前缀和通过预处理数组实现O(1)时间查询区间和,核心公式为preSum[r]-preSum[l-1],适用于子数组求和等问题。二维前缀和扩展至矩阵,通过preSum[i][j]记录矩形和,实现子矩阵的快速求和。文章还提供了典型例题的解法,如使用前缀和+哈希表统计和为k的子数组个数,以及二维前缀和在矩阵统计问题中的应用。前缀和算法能有效将暴力解法优化为常数时间查询,是处理区间求和问题的高效方法。

2026-05-23 21:34:17 435

原创 基础数论—gcd、质数、埃及筛、质因数分解、快速幂

本文总结了数论中常用的算法和定理:1. 最大公约数(GCD)和最小公倍数(LCM)的计算方法;2. 质数判断及筛法(埃及筛和线性筛);3. 质因数分解和唯一分解定理的应用;4. 快速幂算法;5. 约数个数计算和欧拉函数。这些算法涵盖了数论基础运算、质数处理、因数分解等核心内容,并提供了相应的Java实现代码,可用于解决竞赛编程中的常见数论问题。

2026-05-21 18:46:15 786

原创 区间操作:差分与线段树 详细讲解

摘要:本文介绍了算法中处理区间操作的两种核心工具——差分和线段树。差分适用于批量区间修改和最终单点查询,通过O(1)修改差分数组实现高效操作;线段树则支持动态区间修改和查询(和/最值),利用树结构和懒标记技术实现O(logn)复杂度。文章详细阐述了两者的原理、实现方法和适用场景:差分适合大量修改后一次性查询,线段树适合边修改边查询的需求。通过代码示例展示了具体实现,并对比了二者的性能特点和适用条件。

2026-05-20 11:51:04 871

原创 机器数——原码、反码、补码、移码

摘要:计算机中的数据表示是将现实信息转换为二进制编码的方法,包括数值数据(无符号数和有符号数)和非数值数据。有符号数采用原码、反码、补码和移码四种编码形式,其中补码是计算机实际使用的表示方式。原码直观但运算复杂,补码通过模运算实现减法变加法。反码是原码取反,移码用于比较真值大小。不同编码方式对应不同的数值范围,如8位补码范围为-128~127。计算机通过约定方式处理小数点,不实际存储小数点位置。

2026-05-16 14:11:36 732

原创 LeetCode100——回溯

摘要:本文系统介绍了回溯算法的核心概念与典型应用。回溯算法通过"选择-递归-撤销"三步探索所有可能解,常与DFS结合使用。文章详细解析了全排列、子集生成、电话号码组合、数字组合、有效括号生成和回文串分割等6个经典例题,展示了回溯算法的通用模板和不同场景下的变体。重点强调了回溯的关键操作:状态标记与恢复、剪枝优化以及结果集的正确存储方式。每个例题都配有清晰的伪代码和Java实现,帮助读者掌握回溯算法的核心思想和实践技巧。

2026-05-15 11:57:36 768

原创 常见暴力搜索算法

本文介绍了暴力搜索中的BFS和DFS两种遍历方法及其应用场景。BFS通过队列实现层层扩散,适合求最短路径和最少步数问题,如走迷宫和腐烂橘子问题;DFS通过递归实现深度优先探索,适合穷举所有方案、排列组合和连通块遍历。文章通过走迷宫、多源BFS和连通块数量等典型例题,详细讲解了两种算法的实现思路和代码结构,并对比了它们的核心差异:BFS保证最短路径但需要更多空间,DFS能枚举所有方案但可能效率较低。最后强调DFS在连通块问题中只需标记不需回溯,而在路径枚举时需要回溯撤销标记。

2026-05-13 16:47:41 572

原创 最长上升子序列(LIS)和最长公共子序列(LCS)

本文介绍了两种常见的子序列问题及其解法。最长上升子序列(LIS)问题可采用动态规划(O(n²))或贪心+二分查找(O(nlogn))两种解法,前者通过dp数组记录以每个元素结尾的最长子序列长度,后者维护tails数组存储最小可能结尾元素。最长公共子序列(LCS)问题使用二维动态规划,通过比较字符串字符填充dp表,相同字符时取左上角值+1,不同时取左或上最大值。两种问题都要求子序列相对顺序不变但不需连续,LIS针对单个数组,LCS处理两个序列的公共部分。

2026-05-13 00:56:44 682

原创 动态规划之背包问题(Java)

本文介绍了动态规划中经典的背包问题,包括01背包、完全背包和多重背包三种类型。01背包每个物品只能选一次,采用倒序遍历背包容量;完全背包物品可无限选,采用正序遍历;多重背包物品有数量限制,在01背包基础上增加数量循环。文章通过Java代码示例展示了三种背包问题的解法,并解释了正序和倒序遍历的本质区别:倒序防止重复使用物品,正序允许重复使用。最后总结了三种背包问题的核心区别在于物品数量和遍历顺序的不同。

2026-05-12 13:58:31 463

原创 什么是动态规划·启蒙篇

本文探讨了动态规划的核心思想及其优化原理。首先通过递归方法分析斐波那契数列和爬楼梯问题,指出递归存在重复计算导致效率低下的问题(时间复杂度O(2ⁿ))。然后引入动态规划解决方案,通过建立dp数组存储子问题结果(空间换时间),将时间复杂度优化至O(n)。具体展示了斐波那契数列和爬楼梯问题的动态规划实现代码,并强调边界处理的重要性。最后总结动态规划的本质:通过存储重复子问题的结果避免重复计算,以结果为导向构建解决方案。

2026-05-12 00:01:10 723

原创 什么是跨域问题

解决跨域问题

2026-05-11 00:42:25 351

原创 前端项目的打包部署

本文介绍了前端工程化及项目部署流程。前端工程化包含模块化、组件化、规范化和自动化四个核心要素。项目打包通过npm run build命令生成dist文件夹,其中包含静态资源。部署时需将dist文件放入Nginx服务器目录,并在nginx.conf中配置server模块,设置前端路径和反向代理后端接口。最后重启Nginx服务即可完成部署。

2026-05-11 00:41:55 417

原创 Ajax技术和Axois工具库

本文介绍了前端动态获取后端数据的两种技术:原生Ajax和Axios库。Ajax是一种异步通信技术,而Axios是基于Ajax封装的第三方库,具有更简洁的语法和丰富功能。文章详细说明了在Vue项目中安装、配置和使用Axios的方法,包括GET/POST请求、拦截器设置以及async/await语法优化。Axios作为Vue/React项目标配工具,能实现数据交换、异步交互、统一拦截等功能,极大简化了前后端交互开发流程。

2026-05-10 20:30:25 184

原创 Vue框架

Vue是一个渐进式JavaScript框架,用于构建用户界面。其核心特点包括响应式数据绑定、组件化开发、声明式渲染和双API风格(选项式与组合式)。典型Vue项目结构包含public静态资源、src源代码目录(含组件、入口文件等)及配置文件。项目运行流程从npm命令启动,通过Vite构建工具加载入口文件,最终由Vue实例渲染根组件及其子组件。Vue3全面支持TypeScript,适合从简单页面到复杂SPA的开发需求。

2026-05-10 19:07:49 542

空空如也

空空如也

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

TA关注的人

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