自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从《开心消消乐》看“三消”游戏的判定算法(简单版)

本文探讨了三消类游戏(如《开心消消乐》)中判断棋盘是否"无可以消除"的算法。核心思路是通过枚举所有相邻方块的交换可能,检测是否存在能形成≥3个连续相同方块的交换方式。文章将问题抽象为二维数组的遍历与检测,提供了Python实现代码,其时间复杂度为O(N×M×(N+M)),适用于常规棋盘规模。算法不仅能判断"无消除"状态,还可扩展为游戏提示功能。最后指出该解法在更大棋盘上的性能局限,为后续优化留下空间。

2025-08-18 23:17:08 744

原创 理解 React Hook

React Hook是React 16.8引入的新特性,它让函数组件能够拥有状态管理、副作用处理等能力,解决了类组件状态管理和逻辑复用困难的问题。内置Hook包括状态管理(useState、useReducer)、副作用处理(useEffect)、性能优化(useMemo、useCallback)等类型,还支持自定义Hook实现逻辑复用。使用Hook时必须遵循两条规则:只在最顶层调用,且仅用于React函数组件或自定义Hook中。虽然Hook带来了代码简化、逻辑拆分更灵活等优势,但也需注意避免滥用性能优化钩

2025-08-12 16:32:43 657

原创 Husky 常用 Git 钩子 — 详尽介绍与实战场景

本文介绍了Husky工具在前端/全栈开发中的实用配置指南。Husky是一个通过Node.js管理Git本地钩子的工具,可将脚本与Git事件(如pre-commit、pre-push等)关联,用于在本地拦截问题代码。文档详细说明了安装方法、常用钩子的典型场景与配置示例,包括pre-commit(代码格式化与静态检查)、commit-msg(提交信息规范)和pre-push(轻量测试)等关键钩子。同时提供了最佳实践建议,如将重型检查放到CI、结合lint-staged优化性能、编写友好的错误提示等。最后给出了P

2025-08-12 15:39:31 1101

原创 对数几率回归(西瓜书3.3)

对数几率回归(Logistic Regression)是一种经典的二分类方法,通过Sigmoid函数将线性回归输出映射到[0,1]区间,得到概率预测。相比于阶跃函数,Sigmoid具有连续可导、输出概率化的优势。模型采用极大似然估计(MLE)进行参数学习,其对数似然函数等价于最小化交叉熵损失,从信息论视角看是在逼近真实分布。该损失函数具有严格凸性,可通过梯度下降等优化方法高效求解。Logistic回归融合了线性模型的可解释性与概率输出的优势,是机器学习领域重要的基础分类算法。

2025-07-22 22:21:33 1633

原创 微信小程序性能优化笔记4(图片优化)

本文介绍了小程序图片优化的核心技巧,包括减少请求成本、提升加载效率两大方向。主要方法包括:使用雪碧图技术合并小图片减少HTTP请求次数;通过TinyPNG等工具压缩图片文件大小;采用CDN加速和WebP高压缩比格式提升传输效率。文章推荐使用微信团队的miniprogram-slim工具自动生成雪碧图和压缩图片,并强调在保持画质前提下平衡文件大小与加载速度。这些优化措施能有效提升小程序性能,改善用户体验。

2025-07-17 09:00:00 866

原创 微信小程序性能优化笔记3(网络请求优化)

小程序网络请求优化的核心策略包括:减少请求次数(本地缓存优先+同步更新)、优化请求参数(精简字段+JSON压缩)、并发请求管控(优先级队列突破10并发限制)。关键技巧是并行执行缓存读取与网络请求,同时通过优先级调度确保关键请求优先处理。需注意缓存数据的可靠性,将其作为加速手段而非唯一来源,并统一封装请求工具函数便于维护。这些方法能显著提升加载速度,优化用户体验。

2025-07-16 21:51:33 505

原创 微信小程序性能优化笔记2(骨架屏)

本文介绍了骨架屏的核心价值、实现方案及使用规范。骨架屏作为页面加载阶段的占位框架,能有效缓解用户等待焦虑,但不会提升实际渲染速度。文章分析了白屏成因,提出通过loading状态变量控制骨架屏与真实内容的切换,并详细说明了标准实现流程。重点强调三大规范:1)精准控制加载时机;2)通过配置文件统一管理样式;3)合理控制使用范围与复杂度。最后指出骨架屏要在不显著影响性能的前提下提升用户体验,需注重状态控制、标准化配置和场景适配。

2025-07-16 21:35:34 850

原创 微信小程序性能优化笔记1

小程序启动优化关键点在于控制启动时间在3秒内。核心流程包括环境准备、代码注入和首屏渲染三大阶段,受双线程机制(逻辑层与视图层并行)和启动方式(冷/热启动)影响。优化策略包括:减少代码量(分包/按需加载)、合理使用生命周期函数、优化数据拉取时机、资源压缩(WebP图片)、预加载缓存、利用WXS脚本减少线程通信等。重点关注一次性事件(App.onLaunch/Page.onLoad)的执行效率,通过调试工具分析性能瓶颈,实现快速首屏渲染。

2025-07-16 19:49:13 763

原创 Datawhale AI夏令营(机器学习方向)学习笔记1

针对赛题结合学习。

2025-07-15 20:33:26 254

原创 DS二叉树--层次遍历

设T是指向根结点的指针变量,若二叉树为空,则返回;层次遍历二叉树,是从根结点开始遍历,按层次次序"自上而下,从左至右"访问树中的各结点。例如把上述算法中的访问操作定义为输出,算法结果就是把二叉树按层次遍历输出。第二行起输入二叉树先序遍历的结果,空树用字符’0’表示,输入t行。建树方法采用"先序遍历+空树用0表示"的方法。(3)p所指向的结点的左、右子结点依次入队。第一行输入一个整数t,表示有t个测试数据。(4)跳转步骤1循环,直到队列空为止。定义一个空白队列和一个树结点指针p。(2)访问p所指向的结点;

2023-11-01 20:15:17 283

原创 串应用- 计算一个串的最长的真前后缀

试实现一个函数string matched_Prefix_Postfix(string str),得到输入串str的最长的真前后缀。若不存在最长的真前后缀则输出empty。ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB } 因此,该串的真前缀和真后缀中最长的相等串为AB,我们称之为该串的“最长的真前后缀”。给定一个串,如ABCDAB,则ABCDAB的真前缀有{ A, AB, ABC, ABCD, ABCDA }n个最长的真前后缀,若不存在最长的真前后缀则输出empty。

2023-10-11 10:15:00 196

原创 可重叠子串 (Ver. I)

给定一个字符串(模式串)和一些待查找的字符串,求每个待查找字符串在模式串中出现的次数(可重叠)每一组的第二行包括一个整数N,代表待查找的字符串数量 (1 <= N <= 5)每一组接下来的N行,每一行包括一个待查找的字符串,其长度不超过50,且非空串。每一组的第一行包括一个字符串P,长度不超过105,且非空串。第一行输入t,表示有t组测试数据。输出每个待查找字符串出现的次数,

2023-10-11 10:15:00 242

原创 DS串应用--串替换

用字符串s替换从下标pos开始长度为len的字符,str.replace(pos, len, s)。给出主串、模式串、替换串,用KMP算法找出模式串在主串的位置,然后用替换串的字符替换掉模式串。第二行输入第1个实例的主串,第三行输入第1个实例的模式串,第四行输入第1个实例的替换串。第二行输出第1个实例的主串替换后结果,如果没有发生替换就输出主串原来的内容。本题只考虑一处替换的情况,如果你想做的完美一些,能够实现多处替换那。可能需要考虑模式串和替换串长度不一致的情况。第一行输出第1个实例的主串。

2023-10-11 10:00:00 567

原创 DS串应用--KMP算法

第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0。第二行输入第1个实例的主串,第三行输入第1个实例的模式串。学习KMP算法,给出主串和模式串,求模式串在主串的位置。第一行输出第1个实例的模式串的next值。为什么next值和课本的不一样?第一个输入t,表示有t个实例。算法框架如下,仅供参考。

2023-10-10 22:48:30 240 1

原创 四进制加法(运算符重载)

定义一个四进制的类,重定义“+”号实现四进制数的累加。定义一个四进制的类,重定义“+”号实现四进制数的累加。所有输入四进制数累加的和。

2023-05-23 23:41:50 317

原创 OOP矩阵类运算(运算符重载)

请重载加减运算符并自定义矩阵类完成相应的操作。利用重载运算符,实现矩阵的加法,减法。接下来分别为两个矩阵的各个元素。第一行为矩阵的行数和列数。

2023-05-23 23:35:26 318

原创 学生生日差值计算(运算符重载)

定义一个学生类Student,包含该学生的姓名、出生年、月、日 ,重定义 “-”号实现两个学生之间相差多少天的比较。并利用重载的“-”运算符,求所有学生中年龄相差最大的两个人的名字以及相差天数。第二行开始,依次输入每个学生的姓名、出生年、月、日。输出年龄相差最大的两个人的名字以及相差天数。Tom和Jimmy年龄相差最大,为372天。第一行:输入所需要输入的学生个数;

2023-05-23 23:18:56 218

原创 分数的加减乘除(运算符重载)

1.实现Fraction类;common_divisor()和contracted()函数体可为空,不实现具体功能。每行依次分别输出加减乘除计算后的Fraction对象(直接输出分数值,不需要约简)。2.编写main函数,初始化两个Fraction对象的,计算它们之间的加减乘除。第1行:依次输入第1个和第2个Fraction对象的分子和分母值。

2023-05-23 23:00:34 349

原创 复数的加减乘运算(运算符重载+友元)

设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.2.编写main函数,初始化两个Complex对象,计算它们之间的加减乘,并输出结果。定义一个复数类,通过重载运算符:+、-、*,实现两个复数之间的各种运算。第1行:输入两个数值,分别为第一个Complex对象的实部和虚部。第2行:输入两个数值,分别为第二个Complex对象的实部和虚部。第3行:两个Complex对象相乘后的输出结果。

2023-05-23 22:56:13 554

原创 图书借阅(对象数组+构造)

输入借书信息,对每次借书需求,根据样例给出结果。定义图书类CBook,数据成员包括:索取号、书名、馆藏数量、可借数量。Python大学教程 索取号: TP311.561-43/L93。TP311.561-43/L93 Python大学教程 3 1。软件工程基础 索取号: TP311.5-43/M18a1(2)TP311.561-43/L93 Python大学教程 3 0。TP311.5-43/M18a1(2) 软件工程基础 3 3。TP311.5-43/M18a1(2) 软件工程基础 3 2。

2023-05-14 16:14:22 319

原创 复数(输入输出运算符重载)

每次更改实部和虚部,调用运算符<<,输出复数类。注意考虑实部为零、虚部为负数和零等特殊情况。随后每个测试,调用运算符>>,接受两个数值,分别为要修改的Complex对象的实部和虚部。定义一个复数类,通过重载运算符:>>和<<,实现复数的输入输出。首先创建一个复数,实部和虚部均为0。

2023-05-13 22:58:52 2136

原创 货币加减(输入输出重载)

定义CMoney类,包含元、角、分三个数据成员,友元函数重载‘+’、‘-’,实现货币的加减运算(假设a-b中a的金额始终大于等于b的金额),重载输入、输出,实现货币的输入,输出。第二行开始,每行一个操作:add 元 角 分(加)、minus 元 角 分(减)、stop(结束)对每组测试数据,输出操作终止后的货币金额,具体输出格式见样例。可根据需要,为CMoney类添加构造函数或其它成员函数。读入最初的货币值,对其不断进行加、减操作,输出结果。第一行,初始货币:元 角 分。

2023-05-11 22:55:12 1025

原创 图形输出(抽象类+多层继承)

编写一个全局函数Print,无返回值,含单个参数为Shape*类型,功能是输出图形的五个信息:名称、x和y坐标、面积、体积,要求输出必须使用抽象类的五个虚函数输出五个信息。定义Cylinder类继承Circle,新增数据h表示高度,设置名称为"Cylinder",其他函数根据需要自己编写。定义Circle类继承Point,新增数据r表示半径,设置名称为"Circle",其他函数根据需要自己编写。定义Point类继承Shape,在构造函数初始化x和y坐标,设置名称为"Point"要求程序中必须使用抽象类的…

2023-05-11 16:44:30 358

原创 汽车收费(虚函数和多态)

从第二行开始,每个测试用例占一行,每行数据意义如下:汽车类型(1为car,2为Truck,3为Bus)、编号、基本信息(Car是载客数和重量,Truck给出重量,Bus给出载客数)。主函数根据输入的信息,相应建立Car,Truck或Bus类对象,对于Car给出载客数和重量,Truck给出重量,Bus给出载客数。假设载客数和重量均为整数。生成上述类并编写主函数,要求主函数中有一个基类指针Vehicle *pv;以Vehicle为基类,构建出Car、Truck和Bus三个类。Bus的收费公式为: 载客数*3。

2023-05-10 22:56:55 300

原创 员工工资(虚函数与多态)

某公司员工的属性有:姓名、职位、级别、工作年限,级别和年限都是非负整数,否则显示错误。包含方法有:构造函数,计算工资的方法(salary())。员工职位分为三种:Employee、Teamleader、Manager,其他职位类型显示错误。如有错误信息,则输出错误信息,若职位信息与级别和年限信息同时出错,仅输出职位错误信息。Manager的每月工资 = 5000 + 1000 * (级别+工作年限)每行输入一个员工的信息:包括姓名、职位、级别、工作年限。计算工资的方法返回每个员工的工资数。

2023-05-10 22:54:48 181

原创 动物园(虚函数与多态)

某个动物园内,有老虎、狗、鸭子和猪等动物,动物园的管理员为每个动物都起了一个名字,并且每个动物都有年龄、体重等信息。每种动物的叫唤声均不同,老虎的叫唤声是“AOOO”,狗的叫唤声是“WangWang”,鸭子的叫唤声是“GAGA”,猪的叫唤声是“HENGHENG”。定义一个Animal的基类,Animal类有函数Speak(),并派生老虎(Tiger)、狗(Dog)、鸭子(Duck)和猪(Pig)类,其能发出不同的叫唤声(用文本信息输出叫声)。编写程序,输入动物名称、名字、年龄,让动物园内的各种动物叫唤。

2023-05-10 22:54:12 308 1

原创 银行卡(多态+继承)

贵宾卡是普通卡的升级版,包含额外属性是信用额度(Credit),使得贵宾卡能够透支,即取出超过余额的钱,包含的额外方法是透支(over),当执行透支操作,余额清0,超过余额的部分用信用额度来扣减。交通卡是普通卡的升级版,包含额外属性是交通余额(Tcounter),使得交通卡能够当作深圳通使用,包含额外方法是转帐(transfer),把银行卡的钱转入交通余额中,注意转帐金额不能超过账户原有余额,不合法数据直接返回-1,执行成功则返回1。第六行输入四个整数,表示对贵宾卡按顺序执行1次存款,1次取款,2次透支。

2023-05-09 23:11:58 616

原创 OOP 谁是名人堂球员(多重继承)

1)一个球员类Player作为基类,具有name、height、weight等数据成员,display()等成员函数。3、在主函数中定义各种类的对象,并测试之,通过对象调用display函数产生输出。3)从Player类派生出最佳防守球员类DPOY,添加属性:获奖年year。2、分别定义以上类的构造函数、输出函数display及其他函数(如需要)。2)从Player类派生出最有价值球员类MVP,添加属性:获奖年year。构造四个类对象,并按照如下格式进行输出。第一行输入球员的名字,身高,体重。

2023-05-08 23:03:59 231 1

原创 在职研究生(多重继承)

4)从CStudent和CTeacher类共同派生出在职研究生类CGradOnWork,添加属性:研究方向、导师;2)从CPeople类派生出学生类CStudent,添加属性:学号和入学成绩;3)从CPeople类再派生出教师类CTeacher,添加属性:职务、部门;1)定义一个人员类CPeople,其属性(保护类型)有:姓名、性别、年龄;2、分别定义以上类的构造函数、输出函数print及其他函数(如需要)。3、在主函数中定义各种类的对象,并测试之。

2023-05-08 23:01:09 417 1

原创 学生成绩计算(继承和多态)

定义上述类并编写主函数,输入类型符号,若输入R,根据学生基本信息、平时成绩和考试成绩,建立非免听生对象,若输入S,根据学生基本信息、考试成绩,建立免听生对象。60%)计算的结果,85分(包含)以上为A,75分(包含)-85分(不包含)为B,65分(包含)-75分(不包含)为C,60分(包含)-65分(不包含)为D,60分(不包含)以下为F。免听生只有考试成绩和总评成绩两个属性,总评成绩100%根据考试成绩对应上述等级制成绩。非免听生具有平时成绩、考试成绩和总评成绩三个属性,总评成绩根据(平时成绩。

2023-05-08 21:52:27 524 1

原创 OOP 两用沙发(多重继承)

OOP 两用沙发(多重继承)

2023-05-08 15:09:19 597 1

空空如也

空空如也

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

TA关注的人

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