- 博客(52)
- 收藏
- 关注
原创 OSI参考模型和TCP/IP模型
OSI参考模型有7层,自下而上依次为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。(记忆口诀:物联网叔会用)。低三层统称为通信子网,是为联网而附加的通信设备,完成数据传输的功能;高三层统称资源子网,相当于计算机系统,完成数据的处理的功能。传输层承上启下。
2025-04-14 13:29:39
439
原创 前缀和的例题
给定一个长度为 NN 的数列,A1,A2,⋯ANA1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai+1,⋯AjAi,Ai+1,⋯Aj ( i≤ji≤j ) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 K 倍区间。你能求出数列中总共有多少个 KK 倍区间吗?
2025-03-16 11:24:41
192
原创 前缀和(例题)
数据范围保证 3≤n≤2×105,1≤ai≤109,1≤k≤99999,2k<n3≤n≤2×105,1≤ai≤109,1≤k≤99999,2k<n。妮妮学姐手头有一个长度为 nn 的数组 aa,她想进行 kk 次操作来取出数组中的元素。现在有n个任务需要到GPU上跑,但是只有两张GPU,每张GPU一次只能运行一个任务,两个GPU可以并行处理。将任务1到任务i放到第一个GPU上运行,任务i+1到任务n放到第二个GPU上运行。第二行为n个整数Ai,表示第i个任务需要的时间,1≤Ai≤10^9。
2025-03-13 19:18:27
319
原创 算法进阶——进制转换
对于一个十进制的数字,比如说153.其本质是每一数位上的数字乘上这一位上的权重,即:153=(1*10^2)+(5*10^1)+(3*10^0)对于二进制,只不过把10换成2,任意一个非负整数都有唯一的一个二进制表示:(153)10=(10011001)2假设给一个数组来表示一个K进制(假设k>10)的整数,我们该如何得到它的十进制数?把十进制转化为任意进制假设现在有一个十进制的数X,如何转换为k进制? 例题(lanqiao OJ 2489)问题描述请问十六进制数 2021ABC
2025-03-09 15:08:38
276
原创 算法进阶——双指针
双指针算法是一种常见的算法技巧,她通常用在数组或字符串中进行快速查找匹配,排序或移动操作。双指针并非真的用指针实现,一般用两个变量来表示下标(在后面都用指针来表示)。双指针算法使用两个指针在数据结构上进行迭代,根据问题的要求移动这些指针。双指针往往也和单调,排序连续在一起,在数组的区间问题上,暴力法的时间复杂度往往是O(n^2)但双指针利用“单调性”可以优化到O(n).常见的双指针模型有:1)对撞指针2)快慢指针。
2025-03-06 15:26:00
153
原创 算法进阶——贪心算法
每一步都选择局部最优解,而尽量不考虑对后续的影响,最终达到全局最优解。贪心的局限性:贪心算法不能保证获得全局最优解,但在默写问题上具有高效性。贪心的特征:贪心选择性质,最优子结构性质贪心的类型多而杂,难以划分,需要不断的练习与积累。
2025-03-04 20:02:51
334
原创 算法进阶——枚举
基本的算法思想,穷举所有可能的情况。他的基本思想是将问题的解空间中每个可能都枚举出来,并进行验证和比较,找出满足问题条件的最优解或所有解。适合问题规模较小的,解空间可穷举的情况。
2025-03-04 13:33:06
223
原创 二分法——习题
儿童节那天有 KK 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 NN 块巧克力,其中第 ii 块是 Hi×WiHi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 NN 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数;大小相同;例如一块 6×56×5 的巧克力可以切出 66 块 2×22×2 的巧克力或者 22 块 3×33×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?
2025-03-04 12:09:18
242
原创 算法进阶——二分
一种高效查找方法,将问题搜索范围一分为二,迭代地缩小范围,直到找到目标。二分法适用于有序的数据集合。常见的二分类型有:整数二分浮点二分二分答案1.研究并发现数据结构的单调性2.确定最大区间[l,r],确保分界点一定在里面3.确定check函数,一般为传入的mid(区间中的某个下标),返回mid所属区域或返回一个值,当check函数较简单时可以直接判断。4.计算中点mid=(l+r)/2,用check判断该移动l或r指针5.返回l或r整数二分例题(lanqiao OJ 1389):题目描述给定一
2025-03-03 19:46:19
892
原创 Day3 线性表(Linear List)
是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个控标。DestroryList(&L):销毁操作,销毁线性表,并释放线性表L所占用的内存空间。ListInsert(&L,i,e):插入操作,在表L中的第i个位置上擦汗如指定元素e.LocateElem(L,e):按值查找操作,在表L中查找具有给定关键字值得元素。Empty(L):判定操作,若L为空表,则返回true,否则返回false。GetElem(L,i):按位查找操作,获取表L中第i个位置得元素得值。
2024-10-18 22:49:32
255
原创 Day 1 数据结构绪论
数据是信息的载体,是描述客观事物属性的数,字符及所有能输入到计算机中并被计算机程序识别和处理的符号和集合。数据是计算机程序加工的原料。
2024-10-16 22:33:17
557
原创 Day Four(vector容器+排序算法 )
include<vector> //vector和数组差不多动态存储 void printVector(vector<int> &v) { for (vector<int>::iterator it = v.begin();it!= v.end();it++) {//运用迭代器进行遍历 cout << *it <<" ";//默认构造。无参构造 for (int i = 0;i < 10;//通过区间的方式进行构造//n个elm方式构造//拷贝构造。
2024-09-13 22:23:09
314
原创 Day Three
输入两个字符串,先对字符串进行排列(这里运用sort()函数),在对两个数进行遍历,直到遍历到不一样的就是我们要找的字符,这里用break结束循环。选择排序的工作原理是每一次从需要排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排列完毕。在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。例如给定数组 [1, 2, 3, -2, 5, 7],给定总和 7,则返回索引 [1, 4]。输出一行,为两个索引值,升序输出。
2024-09-12 22:15:05
577
原创 Day tow
将字符数组的字符进行反转,例如 ['b', ' ', 'a', 'r'] 变成 ['r', 'a', ' ', 'b']。压缩的格式是将连续相同字符替换为字符 + 数字形式,例如 "AAABCCDDDD" 变为 "A3BC2D4"。实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。若输入的字符串可压缩,则输出压缩后的字符串,否则输出。读入一行字符串,长度不超过 100,字符串可能含有空格。输出一行字符串,该字符串为读入字符串的反转字符串。输出一行,若字符串的字符是唯一的,则输出。
2024-09-11 22:00:42
871
原创 One Day
小蓝被称之为数字王国的数学魔术家,他总是能将一个数字变换出不同的样子。现在小蓝遇见了一个考验,给定一个整数 xx,小蓝可以从 xx中任意选择两个数字并调换它们的位置,请问在保证变换后 xx合法的情况下 xx可以变成的最大值和最小值分别是多少?比如数字 130130,可以变为 310310,但不能变为 013013,因为 00 开头的数字不合法。
2024-09-10 22:22:49
1047
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人