- 博客(92)
- 收藏
- 关注
原创 136. 只出现一次的数字(简单)
本文介绍了LeetCode第136题"只出现一次的数字"的两种解法。第一种使用Map统计数字出现次数;第二种利用异或运算特性,但该解法仅适用于其他数字出现两次的情况。
2025-12-29 16:31:58
157
原创 125. 验证回文串(简单)
本文介绍了验证回文串的三种解法:1)字符串遍历法,通过正则过滤非字母数字字符后比较首尾字符;2)反转字符串法,直接比较原字符串与反转后的字符串;3)双指针法,跳过非字母数字字符后直接比较左右指针字符。
2025-12-29 15:20:13
324
原创 242. 有效的字母异位词(简单)
本文介绍了判断两个字符串是否为字母异位词的两种解法。常规解法使用Map存储字符出现次数;优化解法通过排序后比较字符串,代码更简洁但性能略低。
2025-12-29 14:45:49
210
原创 系统架构设计师(三):数据库系统
本文主要内容包括:数据库系统的组成(数据库、硬件、软件、人员)、三级模式结构(外模式、模式、内模式)及两级映像机制;详细阐述了数据库设计六个阶段(需求分析、概念结构设计、逻辑结构设计、物理设计、实施、运行维护)的工作内容和产出物;分析了E-R图合并时的三类冲突(属性、命名、结构)及解决方法;解释了键和属性的分类(超键、候选键、主键等)以及完整性约束类型;介绍了关系代数运算(集合运算、一元运算、复杂运算)和规范化理论中的函数依赖概念。
2025-12-28 16:09:47
938
原创 344. 反转字符串(简单)
本文介绍了LeetCode 344题反转字符串的解法,通过双指针法(一个指向开头,一个指向结尾),交换字符完成反转。
2025-12-28 16:07:57
241
原创 27. 移除元素(简单)
本文介绍LeetCode 27题"移除元素"的解法,采用双指针法,一个指针遍历数组,另一个记录有效元素位置,将不等于目标值的元素移到数组前端。
2025-12-28 16:00:33
249
原创 283. 移动零(简单)
本文介绍了LeetCode 283题"移动零"的解法。主要思路是使用双指针法:指针j记录非零元素位置,指针i遍历数组,遇到非零元素则交换nums[i]和nums[j]。
2025-12-28 15:43:40
211
原创 2215. 找出两数组的不同(简单)
本文介绍了LeetCode 2215题"找出两数组的不同"的解法。主要思路是将数组转为Set去重后比较,使用filter方法筛选差异元素。
2025-12-28 15:12:16
301
原创 LeetCode -- 350. 两个数组的交集 II(简单)
本文介绍了LeetCode 350题"两个数组的交集II"的两种解法。第一种使用Map存储元素出现次数,第二种采用排序+双指针方法,适用于已排序数组。
2025-12-28 08:11:34
140
原创 LeetCode -- 349. 两个数组的交集(简单)
本文介绍了LeetCode 349题"两个数组的交集"的两种解法。第一种解法将一个数组转为Set去重,遍历另一个数组检查元素是否存在,结果用Set处理。第二种解法将两个数组都转为Set后再比较。
2025-12-27 22:50:35
233
原创 LeetCode -- 18. 四数之和(中等)
本文介绍了LeetCode 18题"四数之和"的解法。通过数组排序和双指针技术,将时间复杂度优化至O(n³)。
2025-12-27 22:07:34
571
原创 LeetCode -- 15. 三数之和(中等)
本文介绍了LeetCode第15题"三数之和"的两种解法。暴力解法通过三层循环遍历所有组合,使用set去重,时间复杂度为O(n³)。优化解法先对数组排序,然后固定一个数,使用双指针寻找满足条件的组合,时间复杂度降至O(n²)。
2025-12-27 16:07:16
648
原创 LeetCode -- 1:两数之和(简单)
本文介绍了LeetCode第1题"两数之和"的两种解法:暴力解法通过两层循环遍历所有组合,时间复杂度O(n²)。优化解法使用哈希表map存储数值和索引,只需一次遍历,通过查找target与当前值的差值是否存在表中来快速定位答案,时间复杂度降为O(n),空间复杂度O(n)。
2025-12-27 14:50:50
1037
原创 系统架构设计师(二):操作系统
本文系统梳理了操作系统核心知识点,重点围绕系统架构设计师考试的命题范围展开。首先概述了操作系统的四大特征(并发性、共享性、虚拟性、不确定性)和七种分类(批处理、分时、实时、网络等)。随后深入解析了进程管理的关键内容,包括进程与线程的异同、三态转换模型、PV操作实现同步互斥、前驱图分析方法等,并以典型例题示范解题思路。文章还详细讲解了进程调度算法(FCFS、优先级、时间片轮转等)和死锁产生的四个必要条件,帮助读者建立完整的操作系统知识体系,为系统架构设计实践提供理论基础。内容紧密贴合考试大纲,兼具理论深度与应
2025-08-19 16:09:44
997
原创 系统架构设计师(一):计算机系统基础知识
计算机系统是指用于数据管理的计算机硬件、 软件及网络组成的系统。它是按人的要求接收和存储信息,自动进行数据处理和计算, 并输出结果信息的机器系统。
2025-06-01 17:04:54
1382
1
原创 《canvas教程:基础+动画+实例》专栏目录
本专栏系统性地介绍了Canvas技术的开发与应用,从基础到进阶,涵盖了图形绘制、颜色填充、路径操作、动画特效、交互设计及性能优化等多个方面。每篇文章均配有代码示例和详细解析,帮助开发者快速掌握Canvas的核心技能。专栏内容包括Canvas的基础知识如矩形、路径、贝塞尔曲线的绘制,以及高级技巧如渐变、阴影、文本操作、图片处理等。
2025-05-24 08:30:00
719
原创 Canvas进阶篇:边界检测
在Canvas中,边界检测是确保元素在画布内运动的关键技术。通过实时判断元素与画布边界的位置关系,可以有效防止元素超出画布范围,避免视觉错乱和用户体验的破坏。
2025-05-24 07:15:00
1240
原创 Canvas进阶篇:碰撞检测基础
本文介绍了三种常见的碰撞检测方法:矩形与矩形(AABB vs AABB)、圆形与圆形(Circle vs Circle)以及矩形与圆形(AABB vs Circle)的碰撞检测。
2025-05-23 06:12:56
1446
原创 Canvas进阶篇:鼠标交互动画
本文介绍了如何在Canvas中实现鼠标交互动画,重点讲解了获取鼠标坐标和处理鼠标事件的方法。通过getBoundingClientRect()方法,可以将鼠标坐标转换为Canvas画布中的坐标。文章详细展示了如何监听鼠标点击事件,并在点击位置绘制圆形,以及如何通过mousedown、mousemove和mouseup事件实现拖动矩形的功能。
2025-05-21 07:42:19
1636
原创 Canvas进阶篇:基本动画详解
本文详细介绍了在Canvas中实现动画的基本步骤和方法。动画的核心步骤包括清除画布、保存画布状态、绘制动画内容和恢复画布状态。文章还对比了三种常用的动画绘制方法:setInterval()、setTimeout()和requestAnimationFrame()。
2025-05-21 07:30:58
1719
原创 Canvas进阶篇:路径裁剪clip详解
本文详细介绍了Canvas中的路径裁剪clip方法,通过定义路径限制绘图区域,使得后续绘图操作仅在指定区域内生效,并对比了clip与globalCompositeOperation的异同。
2025-05-20 12:45:00
1142
原创 Canvas进阶篇:组合Compositing详解
本文详细介绍了Canvas中的组合(Compositing)功能,通过globalCompositeOperation属性控制新绘制图形与已有内容的叠加方式。
2025-05-20 08:20:24
986
原创 Canvas进阶篇:绘图状态详解
本文主要讲解了Canvas绘图中的状态管理,通过save()和restore()方法实现,前者保存当前绘图环境状态(包括变换矩阵、剪切区域、样式属性等)到栈中,后者从栈中恢复最近保存的状态。
2025-05-19 06:12:32
1194
原创 Canvas基础篇:图片操作drawImage详解
在之前的文章中,我们讲述了Canvas中文本操作的方法和属性,本文将讲述Canvas中图片操作方法。本文主要介绍了图片操作方法drawImage以及drawImage的三种重载形式,对于文章中错误的地方或者有任何问题,欢迎在评论区留言分享!
2025-05-17 06:18:40
3326
三次贝塞尔曲线动态图解 HTML 代码资源
2025-05-06
三次贝塞尔曲线静态图解 HTML 代码资源
2025-05-06
二次贝塞尔曲线动态图解 HTML 代码资源
2025-05-06
二次贝塞尔曲线静态图解 HTML 代码资源
2025-05-06
CSS 元素动画篇:基于当前位置的变换动画完整源码及详解
2025-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅