- 博客(131)
- 收藏
- 关注
原创 最大正方形(前缀和)
边长倒着枚举,min(n,m)作为上界(因为正方形边长最大就是min(n,m)),枚举到当前的最大边长(不是最优解即使符合条件也是无济于事)。逐一进行判断,一旦找到0立刻将双重循环break。假如可行(即这个边长的正方形符合条件)则:1. 直接将最优解替换(由于下界为当前最大边长)。2. 将枚举长度的那一段break(由于是倒着枚举)。
2025-04-01 22:04:34
662
原创 Subsequences Summing to Sevens S(前缀和)
前缀和(Prefix Sum),有时也被称为累积和,是一种算法技巧,用于快速计算数组中某个连续子数组的元素之和。它通过预先处理给定数组来构建一个辅助数组,使得后续查询特定区间内元素之和的操作变得非常高效。
2025-03-23 10:36:40
582
原创 Secret Cow Code S
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!既然选择了远方,当不负青春,砥砺前行!
2025-03-06 22:38:55
934
原创 铺地毯(模拟)
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!既然选择了远方,当不负青春,砥砺前行!
2025-01-18 12:02:19
830
原创 P1036选数
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!既然选择了远方,当不负青春,砥砺前行!
2025-01-15 17:48:02
1039
原创 统计单词数
不用vector只能老实的从str头遍历到尾,遍历过程中,用一个临时变量word临时存储每一个单词(临时的周期为:一次遇到空格到下一次遇到空格之间的生命周期),通过和空格判断来划分每一个单词,遇到空格就比较该单词是否和target相等,相等并且下标为-1就更新下标(让现在遍历的下标位置减去目标单词的长度),并且计数器cnt++,比较完之后让word置空进行下一个单词的存储。一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
2025-01-14 20:38:56
697
原创 滑动窗口 /【模板】单调队列
单调队列是一种特殊的队列结构,它不仅支持普通的队列操作(入队和出队),还保证队列内部的数据遵循一定的单调性(即队列中的数据要么单调递增,要么单调递减)。这种特性使得单调队列在处理某些类型的问题时非常高效,尤其是那些需要频繁查找区间最值的问题。
2024-11-19 19:50:59
612
原创 机器翻译(模拟队列)
对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 MM 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。
2024-10-26 00:47:40
430
原创 深入探究:在双链表指定元素的后面进行插入操作的顺序
昨天,我们探究了在双链表指定元素的前面进行插入操作的顺序,并总结了方便记忆的规律今天我们继续探究在后面插入的顺序规律,并且将今天的规律与昨天的作对比,综合起来,找到相同之处与不同所在,这会让我们对双链表底层原理理解的更加深入,在考试当中可以快速给出正确优美的答案。注意:本章节讲的是在p指向待插入元素的前面,所以后面讲的结论只适用于往p指向的结点后面插入一个元素,关于p指向待插入元素的后面的规律,请参考上一篇博文!!!// 定义数据类型为整型// 定义一个简单的调试宏,用于输出整数。
2024-10-05 18:06:09
945
原创 深入探究:在双链表指定元素的前面进行插入操作的顺序
在学习数据结构与算法的课程中,单链表的插入操作只用操作两个指针就可以完成操作,因为单链表就一个next的指针域可控操作,但是在双链表中新加了prior指针域,这会使我们在进行插入操作时需要进行4步的改变指针指向操作才能完成,也就是说如果将这4个步骤的顺序全排列,就会出现4!= 24种进行双链表插入操作的顺序。但是这24种情况只有12种是可以成功插入的,为什么是12种,以及为什么另外12种会插入失败,还有在考试中如何快速判断题目给出的顺序是否正确?这些问题我们在正文中进行详细的讲解。
2024-10-04 22:57:27
1057
2
原创 使用 easyX 库实现顺序表插入操作的可视化
在数据结构的学习过程中,理解顺序表的基本操作是非常重要的。本文将介绍如何使用 easyX 库来可视化顺序表的插入操作。通过动态展示插入过程,我们可以更直观地了解顺序表的工作原理。可视化顺序表插入操作。
2024-09-15 15:52:26
321
原创 针对SVM算法初步研究
支持向量机(Support Vector Machine, SVM)是一种监督学习算法,主要用于分类和回归分析。SVM的基本模型是定义在特征空间上的间隔最大的线性分类器,其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。在分类任务中,SVM试图找到一个超平面来区分不同类别的数据,这个超平面不仅需要正确地分类训练数据,而且还要确保两类数据到这个超平面的距离最大化,这样可以使得模型具备更好的泛化能力。SVM能够执行线性或非线性分类、回归,甚至是异常值检测任务。
2024-09-11 23:24:08
1079
原创 看病要排队这个是地球人都知道的常识
看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。现在就请你帮助医院模拟这个看病过程。
2024-09-07 18:46:27
1099
原创 贪心练习题
今年暑假不AC?“是的。“那你干什么呢?“看世界杯呀,笨蛋!确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)
2024-08-26 14:20:09
481
原创 串的构建与操作
文本处理: 字符串是自然语言处理的基础,例如搜索引擎、文档编辑器、电子邮件系统等都需要处理大量的文本信息。标识符: 在编程语言中,变量名、函数名、类名等都是字符串形式的标识符。首先,我们已经定义了一个SeqString// 字符数组存储字符串int length;// 字符串长度。
2024-08-07 16:09:09
970
原创 链式队列实现
队列是一种线性数据结构,它遵循先进先出的原则。在队列中,新元素被添加到队列的末尾,而旧元素从队列的前端移除。队列的主要操作包括入队(enqueue)、出队(dequeue)等。int data;} Node;// 队列头指针Node* rear;// 队列尾指针} Queue;本文介绍了如何使用 C 语言实现链式队列。通过定义节点结构和队列结构,并实现基本的操作函数,我们能够有效地管理队列中的元素。链式队列由于其动态分配的特点,在处理不确定大小的数据集合时非常有用。
2024-07-29 21:12:54
494
原创 顺序循环队列的构建与操作
顺序循环队列是使用数组来实现的一种队列形式,其中队尾追加新元素,队首移除旧元素。为了高效地利用空间,当队列尾部达到数组末端时,队列头部可以重新回到数组的起始位置,形成一个循环。我们定义了一个SeqQueue结构体,用于存储队列中的数据以及队列的前后指针。} SeqQueue;这里data是一个固定大小的数组,用来存储队列中的元素;front指向队列的头部元素,rear指向队列最后一个元素的下一个位置。
2024-07-25 21:55:46
479
原创 深入理解算数表达式求值:后缀表达式的转换与计算
后缀表达式的特点是运算符紧跟在其操作数之后,例如,中缀表达式3 + 4转换为后缀表达式后成为3 4 +。这种格式消除了对运算符优先级的依赖,也不需要使用括号来表示运算的顺序,这使得计算变得更为直接和高效。初始化:创建一个空的运算符栈和一个空的数组。遍历输入:逐个检查中缀表达式中的每个字符。如果是操作数,直接将其添加到数组。如果是运算符,根据栈顶运算符的优先级与当前运算符比较:若当前运算符优先级高于栈顶运算符,则将当前运算符压入栈。
2024-07-24 22:45:05
1215
原创 利用栈将十进制数转换为八进制数
当所有的除法操作完成,栈中存储的就是构成八进制数的各位数字,只不过它们的顺序是从个位到高位。因此,需要将栈中的数字依次弹出并连接起来,形成最终的八进制字符串或数值。:首先,创建一个空栈,这个栈将用于存储十进制数除以8得到的余数。这个过程重复进行,每次都将新的商作为。:从用户那里获取一个十进制数,我们称为。继续除以8,直到商为0为止。
2024-07-14 21:19:59
798
原创 构造与操作链栈
链栈是数据结构中栈的一种实现方式,它利用链表(通常是单链表)来存储栈中的元素。栈作为一种线性数据结构,遵循后进先出(LIFO, Last In First Out)原则,即最后插入的元素最先被移除。链栈的实现通常涉及定义一个链表节点结构,其中包含数据域和指针域,数据域用于存储元素值,指针域用于指向下一个节点。链栈的操作主要通过对这个链表结构的头部进行插入和删除来完成。
2024-07-14 21:08:21
399
原创 构建与操作共享栈
共享栈是一种优化的栈实现方式,它允许两个或多个栈共享同一段连续的内存空间。这种设计主要用于提高内存使用效率,尤其是在栈的实际需求大小难以准确预测的情况下。
2024-07-10 22:19:52
756
原创 构建与操作顺序栈
顺序栈是数据结构中栈(Stack)的一种具体实现方式,它使用一段地址连续的内存空间(通常是数组)来存储栈中的元素。栈作为一种特殊的线性数据结构,遵循后进先出(Last In First Out, LIFO)的原则,即最后进入栈的元素最先离开。
2024-07-10 22:14:09
349
原创 有关计算素数的算法
素数,也被称为质数,是指在大于1的自然数中,只能被1和它本身整除的数。换句话说,素数是除了1和其本身外,没有任何其他因数的自然数。例如,2、3、5、7、11等都是素数,而像4、6、8、9等则不是,因为它们除了1和自身之外,还有其他数可以整除它们。素数的个数是无限的,这是欧几里得在《几何原本》中给出的经典证明结果。每一个大于1的自然数都可以唯一地表示为几个素数的乘积,这被称为算术基本定理。素数分布遵循一定的规律,但精确预测某个特定大小的素数的位置是非常困难的。
2024-06-20 17:19:19
1009
原创 回文链表(快慢指针解法之在推进过程中反转)
奇数链表」和「偶数链表」最终确定的中间节点不一致,我们可以先确定「链表中间节点位置」,再「反转前半部分的链表」;之后可以通过「统计节点个数」->「对奇偶链表需要翻转的节点个数分别判断完成前半部分反转」->「从前半部分链表和后半部分链表的头结点向两侧扫描推进判断数字是否相同」的方法来判断回文链表。1->2->2->1,长度为4的链表,如果回文,那么从第2和第3个节点出发,向两侧扫描,可以得到相同的数字序列。但这存在「奇数节点个数的链表」和「偶数节点个数的链表」的前半部分和后半部分划分上的不同的问题。
2024-05-28 22:49:17
1194
原创 双链表的操作
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝每一个裂缝都是为透出光而努力!头文件#pragma once#include<stdio.h>#include<malloc.h>#define DataType int typedef struct DLNode{ DataType data; struct DLNode* prior; st
2024-04-10 20:51:47
226
2
原创 删除中间节点(狸猫换太子法)
利用单链表的一个节点,并删除该节点,一般来说的话,删除节点需要知道该节点的前一个节点的next域,以方便释放,现在只知道该节点,就只能知道下一个节点的地址,此时,我们只需要将该节点变成下一个节点,记住,是变成下一个节点,然后删除下一个节点,就可以完成狸猫换太子的操作。若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。中),将其删除后,剩余链表为。
2024-04-04 23:05:32
554
2
原创 单链表的中间节点
使用两个指针变量,刚开始都位于链表的第 1 个结点,一个永远一次只走 1 步,一个永远一次只走 2 步,一个在前,一个在后,同时走。这样当快指针走完的时候,慢指针就来到了链表的中间位置。这道题最朴素的做法是,先遍历一次,计算链表的长度,进而计算链表中间结点的下标(注意偶数结点的时候,得到的是中间的第二个结点),然后再遍历一次,来到所要求结点的位置。思想是:快慢指针的前进方向相同,且它们步伐的「差」是恒定的,根据这种确定性去解决链表中的一些问题。在链表的长度很长的时候,这种方法之前的等待会很久。
2024-04-04 22:07:19
401
1
ESP8266wifi杀手固件,这个不带显示的
2024-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人