- 博客(19)
- 收藏
- 关注
原创 Python实现俄罗斯方块小游戏 实战项目 可视化界面
本文介绍了使用Python和Pygame库实现经典游戏俄罗斯方块的技术方案。游戏通过图形渲染展示方块下落和消除的视觉效果,采用二维数组存储游戏区域状态,实现碰撞检测、旋转逻辑、自动下落等核心机制。项目包含方块形状定义、分数计算、等级提升等功能,支持暂停、重新开始等交互操作,并提供了下落位置预览功能。该实现完整还原了俄罗斯方块的游戏体验,展示了如何将简单规则转化为富有策略性的游戏玩法,是学习游戏开发的典型案例。
2025-07-21 13:58:37
723
原创 深入理解链表及力扣题目实战
链表是一种动态数据结构,通过指针将离散节点串联成线性序列,具有动态调整长度的特点。每个节点包含数据域和指针域(单链表为next,双链表为prev和next)。核心操作包括:1)遍历与访问;2)节点插入(表头、表尾、中间);3)节点删除;4)链表反转(递归/迭代);5)快慢指针应用(找中间节点、判环);6)链表拼接与拆分(合并有序链表、分割链表)。掌握这些基础操作后,复杂链表问题可拆解为基本操作的组合。
2025-07-20 23:45:06
717
原创 力扣976.三角形的最大周长
该题目要求从数组中找出能构成三角形的三个数,使其周长最大。初始暴力解法时间复杂度高,优化后先排序数组,然后从大到小检查连续三个数是否满足三角形条件(两边之和大于第三边)。一旦找到满足条件的最大三个数即可返回其周长,否则返回0。优化后的解法将时间复杂度从O(n^3)降至O(nlogn),适用于大规模数据。
2025-07-18 23:34:13
139
原创 力扣2163. 删除元素后和的最小差值(每日一题)
摘要:题目要求从3n个元素的数组中选择2n个元素,分成前后两部分各n个元素,使前部分和减后部分和的差值最小。解法关键是用隔板划分两部分:预处理左侧n个最小和(使用大根堆)和右侧n个最大和(使用小根堆)。隔板位置范围为[n-1,2n-1],遍历这些位置计算pre[i]-last[i+1]的最小值即为答案。算法时间复杂度为O(nlogn),避免了暴力枚举的低效。
2025-07-18 17:44:33
484
原创 力扣76. 最小覆盖子串
本文介绍了使用滑动窗口算法在字符串s中寻找涵盖字符串t所有字符的最小子串的方法。关键思路是通过双指针维护可变窗口,统计字符频率来匹配t中的要求。算法首先统计t的字符频率,然后遍历s,动态扩展/收缩窗口:右指针扩展窗口直至满足条件,左指针收缩窗口以寻找更优解。时间复杂度为O(|s|+|t|),空间复杂度为O(1)(因字符集有限)。该解法能高效处理包含重复字符的情况,确保找到满足条件的最小唯一子串。
2025-07-18 16:51:15
263
原创 力扣12. 整数转罗马数字
该问题要求将整数转换为罗马数字,遵循特定转换规则。罗马数字由七个符号表示不同值(I/V/X/L/C/D/M),转换时需要注意:1)4和9采用减法形式(如IV、IX);2)仅允许特定的减法组合;3)符号重复次数限制。解决方案采用模拟方法,按千/百/十/个位分解数字,对4或9的特殊情况直接映射,其他情况通过循环减去最大符号值并拼接结果。算法时间复杂度为O(1),适用于1-3999范围内的整数转换。
2025-07-17 11:37:52
219
原创 力扣239. 滑动窗口最大值(单调队列)
摘要:本文介绍利用单调队列解决滑动窗口最大值问题。通过维护一个双端队列,确保队列中的元素下标对应值单调递减。算法在窗口滑动时处理三个步骤:移除越界元素、删除比当前元素小的值、添加新元素。当窗口形成后,队首即为当前窗口最大值。时间复杂度为O(n),空间复杂度为O(k)。示例代码展示了具体实现过程,通过遍历数组动态维护单调队列,最终返回所有滑动窗口的最大值集合。
2025-07-17 11:17:53
163
原创 力扣560.和为K的子数组(每日一题)
该问题要求统计数组中连续子数组和为k的个数。初始解法使用双重循环和前缀和数组,时间复杂度为O(n^2)。优化解法利用哈希表记录前缀和出现次数,将时间复杂度降至O(n)。具体做法是:遍历时计算当前前缀和sum,若sum-k存在于哈希表中,则将对应次数累加到结果中,同时更新当前sum的出现次数。这种方法通过空间换时间,显著提高了效率,适用于大规模数据。
2025-07-16 11:37:53
187
原创 HTML、CSS、JS 实现五子棋小游戏 实战项目
五子棋是一款源自中国的经典策略棋类游戏,玩家通过在15×15棋盘上交替落子,率先形成五子连线者获胜。本文介绍了五子棋的起源历史、标准棋盘配置(包括5个星位标记)和基本游戏规则。重点展示了一个完整的HTML五子棋游戏实现,包含棋盘绘制、双人对战、胜负判定、复盘功能和响应式界面设计。该实现采用现代前端技术,包括Tailwind CSS样式、棋子动画效果、获胜高亮显示等交互功能,完整代码可直接运行于浏览器。
2025-07-15 19:42:57
510
原创 贪吃蛇小游戏 实战项目 基于Python实现 可视化
自己写的项目,大致完成了贪吃蛇的基本功能。方向键控制蛇的移动,空格暂停,蛇吃食物会变长,蛇撞击墙壁或身体会死亡,带有背景音乐和音效。具体代码可以去资源里面下载,附带的资源里有演示视频。
2025-07-14 22:54:55
424
原创 计算机视觉_数据集
链接:https://pan.baidu.com/s/13_8tBQnghk_SQgRS7g5usA。--来自百度网盘超级会员V1的分享。
2024-05-25 10:35:18
329
原创 计算机图像学期末大项目
通过实现逼真的三维场景,本项目具有广泛的应用前景。在游戏开发、虚拟现实、建筑模拟等领域都有广泛的应用场景。逼真的三维场景不仅能够提升用户体验、辅助设计与展示,还有助于相关领域的研究和应用。此外,还能够为学术研究提供参考和支持,推动计算机图形学领域的发展。描述项目的开发环境和所采用的关键技术。编译平台:Microsoft Visual Studio编程语言:C++调用的库:glad,glm,glfw,stbi库关键技术:渲染着色,纹理,光照,建模,交互,OpenGL 一个简易的小仓库,仓库里面有一张床,床上面
2024-02-23 13:50:29
594
1
原创 CSP认证201503-4网络延时(c++)
给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多需要多少步。
2024-01-08 20:27:10
879
原创 CSP认证201312-4有趣的数(c++)
首先分析题意定义,2要在3的前面,0要在1的前面,且所有数字至少出现一次,所以最高位应该为2。因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。请计算恰好有n位的有趣的数的个数。输出只有一行,包括恰好n 位的整数中有趣的数的个数除以1000000007的余数。1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。3: 只含有2,0,1。4: 只含有2,0,3。
2023-09-10 15:53:59
266
1
原创 CSP认证201403-2窗口(c++)
每行包含四个非负整数 x1, y1, x2, y2,表示该窗口的一对顶点坐标分别为 (x1, y1) 和 (x2, y2)。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。第二次点击的位置只属于第 1 个窗口,因此该次点击选择了此窗口并将其置于顶层。第三次点击的位置同时属于三个窗口的范围,但是由于现在第 1 个窗口处于顶层,它被选择。
2023-09-10 12:10:34
155
1
原创 CSP认证202305-2矩阵运算(c++)
首先一个n行d列的矩阵与d行n列的矩阵相乘得到一个n行n列的矩阵,计算n*n*d次,n和d均取最大值,即2e9次。然后该矩阵的每一行与对应的Wi相乘,还是一个n行n列的矩阵,用时n*n次。最后与n*n矩阵与n*d的矩阵相乘,用时n*n*d次。d*n 与 n *d 相乘 得到 d*d 的矩阵,用时d*d*n。n*d 与 d*d的矩阵相乘,用时 n*d*d。最后一步用时n*d。输入矩阵、向量中的元素均为整数,且绝对值均不超过 30。请谨慎评估矩阵乘法运算后的数值范围,并使用适当数据类型存储矩阵中的整数。
2023-09-03 13:10:59
350
基于CBC的3DES加密解密程序
2024-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人