自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人博客系统测试报告(含自动化测试)

本项目是一个基于SSM框架实现的个人博客系统,旨在为用户提供一个简单易用的博客发布和管理平台。用户登录页博客发表页博客编辑页博客列表页和博客详情页。用户可以通过登录系统查看自己及其他用户发布的博客,并能够使用自己的账号发表和编辑博客。用户登录与认证:用户通过登录页面进行身份验证,登录后可以访问博客管理功能。博客发布与管理:登录用户可以发表新博客,并对已发布的博客进行编辑或删除。博客展示:所有用户(包括未登录用户)可以查看博客列表和博客详情,了解其他用户发布的内容。数据持久化。

2025-03-28 03:07:14 962

原创 论坛系统测试报告(含自动化测试)

本项目是一个论坛系统,采用前后端分离的方式实现,该系统旨在为用户提供一个基于 Web 的文章发布和讨论平台。用户可以进行注册登录、查看和修改个人信息,进行帖子的增删改查等基础操作。

2025-03-28 03:05:53 830 1

原创 vscode/cursor中python运行路径设置 &&模块导入问题

pycharm的项目用cursor运行,出现目录找不到后来利用 ,经过打印调试发现是IDE的本身配置问题pycharm中,默认打开当前脚本所在目录vscode/cursor中,默认打开当前工作区(项目目录)重启,解决问题因为在vscode/cursor中,其实是在终端运行python,不像集成IDE pycharm一样可以自动搜索自己写的python包,所以会出现 的问题文件->首选项->设置->搜索setting.json进行编辑,添加以下代码:一般是在里面

2025-03-21 22:02:00 1153 1

原创 LeetCode 692. 前K个高频单词:多种解法与实现技巧

先插入(2,apple), 后插入(2,love),默认插入到(2,apple)的右边,因此中序的时候可以保证 出现频率key相同时,单词value依然按照字典顺序(得益于遍历map时已经是按照单词的升序排列了)因为单词作为key构建的mapmap中序遍历本身是满足字典顺序的,排序如果只按照 pair(单词,频率)中的频率进行比较,那么频率相同的单词可能会改变相对顺序!先考虑value的比较(出现频率),若相同,比较key(string的字典顺序)如果不同的单词有相同出现频率, 按字典顺序 排序。

2025-03-05 02:52:57 671

原创 map的operator[]的实现

一个是insert的返回值的pair<iterator,bool>;另一个是iterator指向的元素 pair<key_type,value_type>所以operator不管怎样,都会返回key对应的value的引用,只是有可能value是新插入的。这里设计的insert不单单返回布尔值,而是返回一个pair类型,包含迭代器和布尔值。正常的常见的insert,插入成功返回true,失败返回false。operator[]里包含插入操作,所以我们先看一下首先看一下map的insert函数。

2025-03-04 23:59:47 267

原创 【LeetCode刷题之路】LeetCode23.合并k个升序链表

📜题目描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。。💡解题思路对于这样一个例子,我们遍历lists,每次要找到所有升序链表中,要比较每一个升序头节点val,找到最小的那个尾插到结果链表(ans)什么时候结束?每一个lists[i]都为空,即所有的升序链表都找了一遍了,就结束下面是这种解法的代码:是通不过的!时间复杂度太高!优化?— > 采用优先级队列(priority_queue)

2025-03-04 01:35:07 274

原创 C与C++中inline关键字的深入解析与使用指南

特性C++C (C99+)引入标准C++98C99重复定义处理✅ 自动合并(ODR规则)❌ 需手动extern定义存储类组合🚫 禁止与static组合✅ 允许static/extern组合类成员隐式inline✅ 成员函数默认inline🚫 不适用典型应用头文件库、模板元编程性能优化、替代宏链接控制隐式外部链接需显式指定链接属性ODR是C++的核心规则,要求同一实体在整个程序中必须有且只有一个定义。链接时重复符号错误运行时不可预测的行为。

2025-03-04 01:33:26 1197

原创 【LeetCode刷题之路】LeetCode661.图片平滑器

如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。这题不太难,用C语言来做比较有挑战性,而C语言主要是参数的传递很恶心!整数矩阵 img ,返回对图像的每个单元格平滑处理后的图像。给你一个表示图像灰度的。

2025-03-02 22:49:42 298

原创 【C语言你真的学会了吗】C语言深度剖析——关键字(2)

首先来看一个问题如果我有两个.c文件,main.c和test.c相信第一反应是:不可以,需要先extern声明一下我们来看一下结果虽然会有一些警告,显然是可以的,那么是为什么呢?为什么不同的.c文件中的函数可以直接调用呢?这是因为程序去找show函数的定义是什么时候呢?是在程序最后一步链接生成可执行文件(.obj)的时候也就是说在编译的时候,编译器在本源文件中可能没有找到show函数(这时候,不同源文件中的内容是不互通的)

2025-03-02 22:43:30 1173

原创 【C语言你真的学会了吗】C语言深度剖析——关键字(1)

变量就是在内存中开辟特定大小的空间,用来保存数据所有的变量,本质都是在内存中的某个位置开辟空间的!那么变量可以在硬盘中开辟吗?不可以!因为变量是程序运行的时候进行开辟的,而程序运行的时候,已经被加载到内存中了所以变量一定是在内存中的!而为什么是某个位置,因为我们是不知道的,是由操作系统随机分配的一个位置定义变量的时候初始化char c='a';这种定义方式是开辟空间的时候,所开辟的空间的里直接放入内容(变量与生俱来的)定义好变量,然后再赋值char c;c='d';

2025-02-27 22:36:31 1090

原创 LeetCode102. 二叉树的层序遍历

一个一个的出显然无法判断是第几层,所以考虑一层一层地出。(即逐层地,从左到右访问所有节点)。利用一个队列q,然后一个vector,vector里的每个元素都是一个。当队列为空的时候,遍历结束。记录该层的节点个数,用于存放每一层的数据。

2025-02-26 21:01:51 397

原创 LeetCode225.用队列实现栈

入栈:先将元素入队到副队列,再将主队列的全部元素依次出队并入队到副队列。然后将主队列和副队列交换(保持副队列为空),主队列的元素就是栈内的元素。实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。出栈:把主队列中n-1个数据导入到副队列,主队列只剩下最后进入的元素,出队即可(模拟后进先出)top:栈顶元素就是主队列的队尾(back)判空:主队列是否为空。

2025-02-26 18:38:07 450

原创 【栈的压入、弹出序列】

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。

2025-02-25 13:18:55 391

原创 【LeetCode刷题之路】leetcode155.最小栈

如果 min_stack 为空,或 x 小于等于 min_stack 的栈顶元素,则将 x 也推入 min_stack。如果弹出的元素等于 min_stack 的栈顶元素,则也从 min_stack 中弹出栈顶元素。如果存在大量的重复值,那么上面的方法显然效率变低了,同时需要维护大量的minst。返回辅助栈 min_stack 的栈顶元素,即当前栈中的最小元素。辅助栈(min_stack):用于存储当前栈中的最小元素。主栈(stack):用于存储所有的元素。返回主栈 stack 的栈顶元素。

2025-02-24 21:19:07 451

原创 详解汉诺塔问题

而实际上是不断地 改变 盘子起始移动柱和盘子终点柱 从而一个一个把这些整体 以单步的形式实现转移。如果有n个盘子为例 我们怎么 借助一个B盘 把所有的盘子 从A柱移动到C柱?整个方法 是 把n-1,n-2.... 大于1个盘子数的情况 看成一个整体。1. 先把上面n-1个盘子 移动到B柱。3. 把B上面n-1个盘子移动到C柱。不过 具体的递归细节 是怎么实现的呢?3. 把B柱上面的小盘移动到C上。我们可以把 上面的n-1个 盘子。1. 先把上面的盘子移动到B柱。2. 把下面的大盘子移动到C柱。

2024-12-19 19:59:49 445

原创 【LeetCode刷题日志】396. 旋转函数

最直接的思路就是,直接一个个旋转尝试,直到找到最大值,但是看这一题的难度也就知道了,暴力的方法肯定通过不了,复杂度太高了!没错就是直接套入公式. 然后进行相减,就会发现有很多项直接消掉了!其中F(0)可以首先求出,作为max的初始值。给定一个长度为 n 的整数数组 nums。生成的测试用例答案符合 32 位整数。

2024-12-19 19:14:13 470

原创 【深入STL:C++容器与算法】深度解析string类的使用

字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)

2024-12-18 11:46:07 558

原创 【LeetCode刷题之路】622.设计循环队列

- 题目理解:这是让我们实现的是一个 大小固定的循环队列正常的大小固定的队列如果满了就不能插入了而这里所说的循环队列 是队尾和队头连在一起的**所以我们首先想到的就是 利用链表实现循环队列**

2024-12-13 17:41:32 1056

原创 【C语言实现:用队列模拟栈与用栈模拟队列(LeetCode 225 & 232)】

栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶实现方法:1. 数组(顺序表) 2.链表队列队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列。

2024-12-13 17:36:16 893

原创 关于VS2019scanf的安全问题

相信很多人遇到过使用scanf提示错误的情况那么VS报错的原因是什么呢?

2024-12-08 19:29:44 392

原创 【C++】堆栈的使用 | 堆栈的大小 | 动静态分配问题

栈和堆的使用:自动管理栈和堆的大小问题:动静态分配:动态分配:静态分配:动静态分配的不同:1.时间:2.空间:_alloc()_alloc()

2024-12-08 19:27:30 406

原创 【LeetCode刷题之路】64.最小路径和 (动态规划入门)

请找出一条从左上角到右下角的路径,每一步只能向下走或者向右走。遍历二维数组,找到最小值。给定一个包含非负整数的。

2024-12-05 23:41:25 434

原创 【LeetCode刷题之路】419.甲板上的战舰

两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。如果都不是,说明这是一个新的战舰,战舰的数量+1。表示甲板,其中,每个单元格可以是一艘战舰。(k 行,1 列)的形状建造,其中。最后返回战舰数量count即可。战舰 只能水平或者垂直放置在。换句话说,战舰只能按。上放置的 战舰 的数量。(1 行,k 列)或。

2024-12-05 23:19:05 456

原创 【LeetCode刷题之路】453.最小操作次数使数组元素相等

给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1。最后的和:sum+(n-1) * count。返回让数组所有元素相等的最小操作次数。除了最大值的坐标,其余坐标元素都++所以元素都相等:最小值+count。每一次都找出最大值的坐标。每一次记录count。

2024-12-04 14:10:51 294

原创 【LeetCode刷题之路】598 范围求和Ⅱ

区域宽度 最大也不过n,所以,直接把最小值设置为m和n 从而去找最小的a和b,得到的就是最后的区域长度和区域宽度,返回乘积即可。答案:坐标满足 x < a 的最小值 且 y < b的最小值的坐标处 一定是++操作次数最多的坐标位置,因为它a和b最小。**所以重复++次数最多的区域,就是满足 x

2024-12-04 00:27:34 865

原创 Git忽略除了指定文件以外的所有文件

使用.gitignore文件可以方便地管理项目中需要忽略的文件和目录。通过简单的规则,我们可以排除除了指定文件以外的所有文件,确保Git版本控制系统只关注我们感兴趣的文件。正确地使用.gitignore文件将有助于提高项目开发的效率和可维护性,避免意外提交敏感或临时文件。在本文中,我们介绍了.gitignore文件的作用和使用方法,并提供了一些常用的规则示例。通过创建一个.gitignore文件,并在其中按照规则指定需要忽略的文件和目录,我们可以更好地管理项目中的版本控制。

2024-12-03 22:22:01 971

原创 【LeetCode刷题之路】120:三角形最小路径和的两种解法(动态规划优化)

每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标。,那么下一步可以移动到下一行的下标。,找出自顶向下的最小路径和。

2024-11-30 21:32:19 446

原创 【LeetCode刷题之路】283:移动零的普通解法与优化解法(含动图演示)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。​ 所以需要用count记录0的个数,当所有0都移动完了就break,否则会死循环。在i位置遇到0,把后面的元素向前移动覆盖,然后把最后一个位置赋值为0即可。最后end走到numsSize,src位置就是最后一个非0的下一个位置。这个题有两种大思路,第二种有一个原版本,有一个优化版本。有可能 i 位置的0 是因为 已经所有的0都到后面了。end去找非0,放到src位置。当end位置为非0的时候。

2024-11-30 19:35:15 710

原创 【LeetCode刷题之路】剑指Offer26.树的子结构

针是否等于B的根节点的值对A做先序遍历的过程中 如果根节点相同我们去判断此时B是不是以该根节点的子树的子结构!该函数是用于判断,B是不是以A为根节点的树的子结构。如果A,B值不等,直接返回false。因此需要借助辅助函数, hasSub(A,B)实际上进行先序遍历的同时要进行递归判断子结构。实际上2和3就是在进行先序遍历!题目让判断B是不是A的子结构。但是我们进行判断是基于。, 去判断是否为子结构。

2024-11-27 23:49:09 284

原创 C++模板(入门)

class 类模板名// 类内成员定义以Stack为例,下面就是一个Stack类的模板,模板参数为Tpublic:, _top(0)private:T* _a;

2024-11-27 23:46:42 1758

原创 【LeetCode刷题之路】498. 对角线遍历

如果坐标和为奇数,就向下走。然后根据上面所列的具体的情况再进行判断向右or向左or向上or向下。,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。所以,从[0][0]开始填入数组,并判断下一次往哪走。如果坐标和为偶数,就向上走。我们规定,在路径中有。

2024-11-25 22:22:35 405

原创 【LeetCode刷题之路】54.螺旋矩阵&& 59.螺旋矩阵Ⅱ(螺旋矩阵问题)

就是说,给我们一个二维数组,然后我们需要按顺时针的顺序遍历二维数组,然后把每一个遍历到的数据放到一个一维数组中,最后返回这个一维数组。思路很简单,关键是怎么控制让他顺时针去访问,什么时候向下走什么时候向左走,什么时候向右走 等问题

2024-11-25 22:14:19 600

原创 【LeetCode刷题之路】46.全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。主函数中需要遍历每一个元素为起始。

2024-11-22 23:46:25 394

原创 【LeetCode刷题之路】17.电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

2024-11-22 23:43:44 299

原创 「刷题技巧:中缀表达式转后缀表达式的简单方法!」

其他情况都是: 如果栈顶元素的优先级大于此时操作符的优先级 或者栈为空的情况,就入栈,否则出栈。② 如果该操作符的优先级 低于或者等于栈顶元素的优先级:出栈,放入容器,然后进行下一次比较(中缀表达式不向后走)但是计算机是不会判断的,因为计算机是默认从左向右读取数据,它先遇到。如果遇到右括号,就开始出栈,放入容器 循环这样,直到遇到左括号。往后走的第一个操作符的优先级一定高于栈中运算符的优先级,入栈。就会计算,其结果是不对的。入栈(最后越靠近栈顶,操作符的优先级越高,越先运算)如果遇到左括号,左括号入栈,

2024-11-20 23:09:10 239

原创 【LeetCode刷题之路】394.字符串解码

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。把 k[encoded_string] 当作一次递归,即遇到数字,就要递归。给定一个经过编码的字符串,返回它解码后的字符串。s 中所有整数的取值范围为 [1, 300]k[]括号内部可能有多个子[],利用递归。

2024-11-20 22:57:14 224

原创 【LeetCode刷题之路】654.最大二叉树

然后划分左右子区间 [left,max_index-1] 和 [max_index+1,right]找到[left,right]的最大值 以及最大值坐标max_index,构造root。递归构造左右子区间: root -> left 和 root ->right。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。具体需要考虑左右区间的划分,以及递归的结束条件。创建一个根节点,其值为 nums 中的最大值。返回 nums 构建的 最大二叉树。

2024-11-15 16:26:40 489

原创 牛客:字符串通配符

那么可以匹配一个数字字符或者字母字符,但是如果str此时不是字母或数字,不能匹配,返回false。如果不是字母,但是也是相同的,比如都是# . 之类的 index1和index2都向后走。如果都是字母,并且是同一个字母(不区分大小写),index1和index2都向后走。能抵消多个字符串的字符,让index1不动,index2向后走。返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。看成不存在,跳过: index1向后走,index2不动。:匹配0个或以上的字符(注:能被。

2024-11-15 16:24:45 452

原创 C++中,new的空间能否用realloc扩容?

显然,弊端很明显,在项目中会造成不可预测的错误发生。这种错误在大型项目中是很难发现的。但是如果是自定义类型,new的时候需要调用构造函数初始化。同理,malloc的空间能否用delete释放?所以从编程纪律以及规则上来说,是不可以的!而new的空间如果继续realloc。这两个问题也是同样的答案,不可以!new的空间能否用free释放?对于内置类型,确实是不会出错的。

2024-11-13 21:28:56 256

原创 C++写一个Date日期类

C++写一个日期Date类,总结类和对象知识点。

2024-11-13 21:24:02 410

空空如也

空空如也

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

TA关注的人

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