自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【leetcode 详解】找出区分值(C++思路详解):这【中等】题怎么十分钟就写完了?

就笔者的感觉吧,leetcode上难度标为“中等”的题目往往不是说需要什么高深的算法来解决,但基本都涉及到 “问题转化” 的能力要求,换言之,难点往往在于思维。首先很明确,任取nums中两个值作差的最小值minimu,一定小于等于根据题目需要(拆成两个数组...作差)返回的的值,进一步就是看,作差求出minimum的那两个数能否按题目要求放进两个数组的相应位置。,其实要求出分度值的最小值,就是先对nums从小到大排序后,相邻两元素差的最小值。记排序后,作差求minimum的两个数为a, b。

2024-07-26 18:09:21 436

原创 【leetcode】两数之和【简单】( 注释详解:C++map/ C哈希表)

下面是时间复杂度为O(n)的代码。

2024-07-26 17:53:30 101

原创 【leetcode】两数相加【中等】(C++递归解法)

链表类问题往往是蛮适合用递归的方式求解的。

2024-07-25 17:30:20 135

原创 【leetcode 详解】生成特殊数字的最少操作【中等】(C++思路精析)

解题思路笔记:最初拿到这道题是很蒙的,联想不到什么数据结构的模型(肯定是笔者积累太少了),甚至惯性地想怎么实现“删除数字”的操作:在原字符串中抽出一个字符然后将剩余数字按原顺序拼接?看着看着下面的测试数据,我突然意识到,能整除25的数确实很特殊,即若长度足够,则必然以【00,50, 25, 75】来结尾,这样一来,未知长度的字符串问题,就转化为了:专注于找可以放在结尾的两字符的问题。进一步观察题目要求可以发现,既然咱们要的就是 “最小删除个数”

2024-07-25 17:21:33 262

原创 【vector】常用实战方法:增删改查(C++入门必看)

【vector】常用实战方法:增删改查(C++入门必看)

2024-07-24 17:56:29 122

原创 【经典问题】精析:一文搞懂 动态规划解决 0-1背包问题

求解思路的本质:从小体量(少物品,少容量)的问题开始,不断求出局部最优解,然后以此为基础放大问题(求得较多物品,较大容量下最优解)重复上述过程,直到求出题目要求的最优解(数量为n的物品,容量为size的背包条件下的

2024-07-24 17:44:01 468

原创 【经典问题】遍历得到数组的所有子序列(C++/python)

为实现遍历所有子序列,C++递归函数的模板见下:

2024-07-23 17:27:35 172

原创 刷题平台的运行结果和自己编译器运行结果不一样,怎么回事?

同样的测试数据,我将代码放在编译器里跑结果符合预期,但是!原封不动地复制到leetcode去提交,却输出了一个莫名其妙的结果。再比如C99要求main函数空参数必须是void,返回必须是int,但是其他编译器如msvc会宽恕其他的返回类型和语法。再比如#programed once语法是msvc自创的,标准上没有,其他编译器也不保证实现。我说一个常见的例子,int类型的位宽在不用编译器和不同机器上位宽不一样。“我没有做过leetcode,这种情况我听过,很正常。保证按照标准的最低要求程序可以运行。

2024-07-23 17:08:19 315 2

原创 【Python期末大作业】西电Lgx老师(实验三)满分代码实现

1.编写代码,实现一个栈(Stack)类。栈是只能在一端插入和删除数据的序列,它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据,最后一个数据被第一个读出来。2.学习Pillow标准图像处理库实现将图片转换为字符画,图片自选。根据不同的灰度复杂度选择合适的ASCII字符灰度表。首先利用Pillow读取图像并转换为灰度图。将图片灰度映射为不同灰度ASCII字符。

2024-07-04 18:00:00 129

原创 【Python期末大作业】西电Lgx老师(实验二)满分代码实现

2.找出[‘Anne’, ‘Amy’, ‘Bob’, ‘David’, ‘Carrie’, ‘Barbara’, ‘Zach’]中以‘A’开头的名字(要求使用lambda,且仅用一行代码完成,结果是一个列表)4. 以字典为基础建立一个通讯录,向字典中添加和删除通讯人(名字、电话、email、工作单位等),查询某个人的信息,然后输出通讯录中所有人的信息。5. 编写一个函数对输入的一个2维列表进行原地转置。如[[1,2],[3,4]]转置为[[1,3],[2,4]]。

2024-07-04 09:50:58 188

原创 【python爬虫实战】耗时三天,天气虫虫高级版来啦(所有城市均可访问 + 鲁棒性强化 + 使用体验)

我希望自己的代码实现的是一个受人喜爱的服务者,而不是一个冰冷的机器。要做到这一点,笔者认为要给予直接面向用户的交互语言以足够关注,应尽可能地让语言更加的自然、口语化、人性化。要实现这一功能,难点在于二者的爬取方式不完全相同,笔者自身也没有想到很优雅的解决方法,只能是通过多个关键节点的分类讨论来实现,如果大家有兴趣hai。利用assert来判断,利用time。后来觉得有些“窝囊”哈哈哈,于是便开始思考,如何让程序兼容对那些与省份同层的城市的访问(即如上海、北京、香港等特殊的城市)

2024-07-03 20:13:24 298

原创 【并查集】浅谈思想 & 代码实现 & 实战例题(C/C++)

并查集(Union-Find)算法的主要操作包括两种:合并(Union):将两个不相交的集合合并成一个集合。查询(Find):查询两个元素是否属于同一个集合。

2024-07-03 20:12:57 1232

原创 【python爬虫实战】进阶天气虫虫(过程复盘 & 心得分享)

由于要获取的信息较多较细,观察网页html原码,或者参考编译过程中直接用find_all函数获取的结果不难发现,由于网页原码中标签的重复性较大,通过一次find_all获得的可迭代对象可谓是“鱼龙混杂”。麻烦来了,他们三者在find_all后得到的元素个数并不一样,但for循环的更新一次的依据恰恰是根据迭代一次来进行的(迭代一次,for循环进行一次),因此想要实现“优雅“输出大概没有那么容易。笔者在输出这一步碰上一个麻烦:要实现如下的规整输出,就不得不在一次for循环中将日期、气温、天气的值都输出一遍。

2024-07-01 23:23:00 510

原创 【python爬虫实战】初代天气爬虫(查看某市当日天气)(界面爬取到了汉字,但是网址中用的是对应的拼音肿么办?)

Q:界面爬取到了汉字,但是网址中用的是对应的拼音肿么办?

2024-07-01 14:34:06 121

原创 【python爬虫实战】爬取豆瓣top250(网站有反爬虫机制肿么办)

这次爬取豆瓣网站必须使用“请求头headers”,不然将没有输出结果。至于说背后原因,笔者推测是豆瓣网站有“反爬虫”机制,而指定headers,可以模拟普通的人为浏览器访问 ,从而避开阻拦

2024-06-30 20:29:02 868

原创 【PTA】7-3 寻找大富翁 (堆排序思想)(C++)

要求最大十个元素,就建了含十个元素的堆,经过上述操作不断调整堆,最终得到的堆中的元素,就是我们要找的十个最大值。

2024-06-28 15:09:28 563

原创 【python爬虫实战】爬取书店网站的 书名&价格(注释详解)

爬虫代码见下,语句根据笔者理解,基本已逐句注释。

2024-06-28 12:07:32 275

原创 【PTA】7-1 网红点打卡攻略(C/C++)代码实现& 反思

// 需要注明的是,本代码非AC代码,仍有一个测试点没有通过,如果有大佬发现问题,期待批评指正!0.审题时,记录联想到的易错细节,如(“如果这样的攻略不唯一,则输出序号最小的那个。1.注意理解清楚题义:“访问所有网红点”中所有不是指攻略中所有,而是存在的全部的网红点。1.如果题目有测试数据的解说的话,写之前先看解说,从而更准确地把握题意。0.比较图的两种存储方法,通过邻接矩阵存储更便于查找给定两点之间的关系。

2024-06-27 20:51:18 355

原创 【Python期末大作业】西电Lgx老师(实验一)代码实现

1. 编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数。2. 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。3. 编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。4. 编写程序,实现分段函数计算,如下所示:5. 编写程序,用户在命令提示行输入文件名和该文件的编码格式,读入文件,将其转存成UTF-8格式。

2024-06-27 11:37:08 268

原创 【调整堆】(C++ 代码实现 & 注释详解)

调整堆的函数:HeapAdjust函数思路说明://目标:将以s为根的子树调整为大根堆//具体操作:将路径上比s大的都往上移动,s往下移动,直到遇到比s还小的,就“放下”s

2024-06-09 11:49:46 317

原创 【PTA】7-3 拯救007(C++)代码实现 & 易错点反思

检查了半天仍然查不出的问题:1. 当考虑特殊情况要提前结束程序时,别忘了return

2024-06-03 21:38:43 317

原创 【PTA】7-4 朋友圈(C++ * 并查集思想)代码实现 & 一点反思

不寻求在每一次更新节点的时候就能将所有相关节点的父亲结点都给统一更新好,而是两个两个建立父子关系,最后统一用FInd_fa函数来查找父节点。:先找父节点,最后再总体遍历一次计算最大值。

2024-05-31 21:15:25 379

原创 【PTA 6-1】邻接矩阵存储图的深度优先遍历(易错点提醒 & 代码实现)

关于参数中‘void (*Visit)(Vertex)’的粗略说明:

2024-05-24 22:01:19 595 2

原创 【最小生成树】—— Kruskal算法(C++详解版) 思路分析 & 代码实现

关于”判断是否形成环路“的阐释在实现过程中,通常会使用并查集来判断是否形成环路。如果选中的边的两个顶点属于同一个集合,则说明会形成环路,此时应该舍弃该边。否则,将两个顶点合并到同一个集合中,并将该边加入最小生成树中。

2024-05-19 20:07:04 924

原创 大学生计算机应用能力达标测试(C1-1)(西电) C语言题目 & 备考建议 & 应试建议

接受一个整数n, 0

2024-05-18 17:01:26 608

原创 链接表存储图(C++注释详解): 构建表 & 广度优先遍历 (BFS)

图的链接表的构建 & 利用队列实现广度优先遍历 (BFS)

2024-05-16 15:27:36 219

原创 链接表存储图(C++注释详解): 构建表 & 深度优先遍历 (DFS)

代码实现: 构建表 & 深度优先遍历 (DFS)

2024-05-15 21:40:50 479

原创 【最短路径】Dijkstra算法(C/C++简明注释详解版: 代码实现 & 测试数据)

Dijkstra算法是一种求解最短路径的贪心算法,它能够找到两点之间的最短路径。1) 找到起始点到该节点距离最短的节点(即未被访问过且距离最小的节点)。2. 创建一个数组用于记录节点是否已经被访问过,初始化为false。1. 创建一个数组用于记录起始点到其他节点的距离,初始化为无穷大。3) 遍历该节点的所有邻居节点,更新起始点到邻居节点的距离。5. 最终得到起始点到其他所有节点的最短距离。2) 标记该节点已经被访问过。3. 将起始点到自身的距离设为0。~~ 希望对你有帮助 ~~

2024-05-09 20:53:09 1171

原创 哈夫曼编/译码器(C++)

A. 利用优先队列构造哈夫曼树。B. 完整代码可实现题目要求的功能:1. 编码 2. 读入文本并转化为编码形式存储与“ code ”中 3. 将code中编码转译为文本,并与原文本比较

2024-04-30 21:48:39 492 2

原创 priority_queue 的 自定义排序(C++ 简明版)

笔者初学的时候,看网上资料很多且详尽,但是作为初学者,看了一堆没学过的代码后,也不知道自己到底怎么用,且就实际使用而言,只需熟练掌握一种即可了。故学会使用后作此入门式讲解,希望给你带来帮助~程序中使用了一个处理不知输入值的个数的技巧(“while(cin>>cur.name>>cur.value)”),

2024-04-24 22:52:50 596 1

原创 priority_queue 的 自定义排序(C++ 简明版)

笔者初学的时候,看网上资料很多且详尽,但是作为初学者,看了一堆没学过的代码后,也不知道自己到底怎么用,且就实际使用而言,只需熟练掌握一种即可了。故学会使用后作此入门式讲解,希望给你带来帮助~程序中使用了一个处理不知输入值的个数的技巧(“while(cin>>cur.name>>cur.value)”),

2024-04-19 22:00:10 214

原创 天梯赛2023 L2-2 天梯赛的赛场安排(C++)代码实现 & 易错点 & 反思

AC代码如下:使用了优先队列,栈。

2024-04-18 22:56:35 437

原创 天梯赛 L1-7 分寝室 代码实现 & 反思

但后来仔细想一下,min记录的男女每个宿舍人数的差值最小值啊,跟n的大小并没有直接关系啊, 这样看, min的初始值大概并不能根据题目输入值简单界定,那就定的大些吧。一开始测试点4怎么都不能AC,百思不得其解,上网看了别人的代码后,发现问题出在记录最小差值的变量 min 的初始定义上,你能看出问题吗?我一开始将min初始化为n+1,是想当然地以为最大差值不会超过n,毕竟宿舍一共就n个,怎么会差值怎么会超过n呢?总的来说,慎终如始,则无坏事~

2024-04-17 22:55:20 422 3

原创 二叉树: 构造 & 三种遍历(C++)

通过使用引用,我们可以直接修改传递的指针的值,而不是传递指针的副本。在这个函数参数中,&符号表示传递的是指向指针的引用。这样可以确保在函数内部对指针的修改对调用者也是可见的,而不需要返回修改后的指针。

2024-04-16 22:34:12 1149 1

原创 PTA 病毒感染检测(C/ C++) 一行代码的优化,整个程序的成功!

就是:当病毒的DNA开始与人的DNA重合时,如果人的DNA的剩余长度都比病毒的长度要小,那么匹配失败的结局是必然的,就不需要进行后面的操作了,于是可以提前结束程序。后面就想怎么降低不必要的过程,实际上就是跳出程序本身去思考题目蕴含了哪些关系,可以利用以优化代码,如提前结束循环过程。一开始有两个测试点出现“段错误”, 修改数组大小无果后,感觉应该是程序暴力for循环求解导致时间复杂度太大。结果让人惊喜,直接就AC啦~。希望能给你带来启发~

2024-04-14 22:45:29 630

原创 天梯赛L2-2 老板的作息表(C/ C++) 思路 & 代码实现 &反思

代码写到后面,发现由于小时/分钟/秒的交换,代码显得特别冗余。若题给最晚时间不是23:59:59, 则将T[ final ] - 23:59:59 作为 re[ fianl ].若题给最早时间不是00:00:00, 则将00:00:00 - (T[ 0 ])作为 re[ 0 ];将(T)的下一段时间的开头作为(re_T)的结尾。一般情形:将题目给出的某段时间(T)的末尾作为re的一段时间(re_T)的开头;0.读入时间后,用排序神奇qsort从小到大进行排序。1.re数组负责接收待输出的结果。

2024-04-10 22:11:02 593 1

原创 不知道输入数据有多少,到底怎么接收呢?(C/C++)

在自己调试的过程中,可以在输入结束时按“Ctrl + Z”到命令行中实现终止程序。在递交给评测系统时,题目的数据末尾会有终止符。//用cin.getline接收。//scanf接收字符串。

2024-04-08 22:19:58 264

原创 天梯赛2022 L2-3 龙龙送外卖(C++)注释详解版

笔者也是初学者,本文是在参考文章的基础上根据自己理解写得注释版,希望能给有需要的童鞋一些帮助,少走我的弯路~

2024-04-07 22:18:14 291

原创 迷宫问题(C++): 最短路径计算(队列)&& 路径输出(栈)(附一个易错点~)

回溯路径的原理:从出口开始,在re_bd(PS: re_bd[ i ][ j ]用来记忆从起点到第 i 行第 j 列的最短路径长度)里找周围八个方向中路径长度少1的点, 故一般情况可用以下代码非注释部分来判断。~都看到这啦, 你一定是个超级认真的友友,关注一下吧~ 😋ღ ʕ̡̢̡•̫͡•ʔ̢̡̢ ღ😋。”, 在re_bd == 1 时就结束寻找,在printf栈元素之前先print一下起点坐标。1.补充上面被注释掉的“if(org == 0) // 如果是起点”部分, 将起点。在于最短路径的回溯过程。

2024-04-07 16:28:15 521

原创 天梯赛2022 L2-1 插松枝(C/ C++)(思路心得 + 代码实现)

3. 需要的变量有哪些, 除了题目条件直接点出的(如推送器)之外,大体上还需要设哪些辅助变量(如本题中设 i_tui 指示推进器当前推送的松针序号, 最终用 i_tui==size(推进器)判断推送完全 )1. 如果要循环操作,那么循环的依据是什么 (本题中,我选择“成功插上一根松针”为主while循环的依据)//注意, 这点感觉是蛮重要的,在整个循环中都要保证是同一个阶段,这样不容易错。今天“痛改前非”, 开始敲代码前先按照理解将工作流程图给画了一遍(如下图), 诶, 立刻清楚了不少!

2024-04-06 22:33:06 682 2

空空如也

空空如也

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

TA关注的人

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