- 博客(29)
- 收藏
- 关注
原创 算法----贪心
贪心算法是一种高效、直观的算法策略,适用于具有贪心选择性质的问题。它通过局部最优决策逐步构建全局解,但不总是保证最优性。实际应用中,需先验证问题是否满足贪心条件(如通过数学证明),再决定是否使用贪心算法。
2025-08-16 09:38:18
1037
原创 Rust 语法基础教程
Rust 的语法设计注重安全性和性能,通过所有权系统、类型系统和借用检查器确保内存安全。掌握这些基础语法是学习 Rust 的重要第一步。关于泛型,trait,所有权,生命周期在后面会详细讲解。
2025-08-16 09:14:05
439
原创 leetcode 643. 子数组最大平均数 I
其实这还不是最优秀的方法,如果我们再深入思考一下,在结合关键词k为定长,就会发现其实平均数的大小只与sum有关只要sum越大,avg就越大,那么我们还可以简化为只需要找到sum最大的区间就行了。
2025-08-15 10:39:33
604
原创 算法----滑动窗口
滑动窗口是一种常用的技术,主要用于处理连续数据序列(如数组、字符串或时间序列数据),通过动态调整一个固定大小的“窗口”来高效地解决问题。窗口在序列上“滑动”,每次移动一个位置,从而避免重复计算,优化时间和空间复杂度。该技术在算法设计、网络通信、数据分析等领域有广泛应用。
2025-08-15 10:34:33
345
原创 leetcode1456. 定长子串中元音的最大数目
例如abciiidef k=3,第一次切片为 abc,第二次切片为 bci,...然后拿着切片去判断有几个元音这其实是没必要的,会浪费资源.第二判断是否为元音的时候为了追求性能(如C.rust)可以将这些元音变为字节(当然在这里没必要)这是一道典型的滑动窗口,虽然简单,但是任然有有很多可以注意的细节,第一 为了节约资源,不必要每次都去切片一个字符串。
2025-08-14 15:45:05
407
原创 rust的变量
Red,Green,Blue,rust有多种类型,如果你刚开始学习,那么你只需要掌握基本类型就行,剩下的类型我们将在后续学习如果你学习过C,C++,Java,python等语言那么你应该很熟悉这些数据类型我不过多赘述。
2025-08-01 23:46:44
397
原创 rust输入与输出
本文介绍了Rust中控制台输入输出的基本用法。示例展示了如何通过std::io::stdin().read_line()读取用户输入,并使用parse()方法将字符串转换为数字类型,同时处理可能的错误(使用unwrap_or_else设置默认值)。还介绍了println!宏的格式化参数:{:?}用于调试输出,{}用于用户友好显示,{:#?}提供美化格式。最后提到mut等语法将在后续讲解。文章配图展示了输入输出过程。
2025-08-01 23:02:56
259
原创 C语言学习----结构体
type name;type name;char c;char* str;这里我们定义了一个结构体,叫node,里面有三个变量。
2024-08-17 19:14:40
310
3
原创 C语言学习----指针
指针就是地址。怎么获取变量的地址?取址符加变量名称,例如 &a。int *p;指针的基础使用这里的662698508就是变量a在内存中的位置编号。看到这里觉得指针没什么用对吧,在C语言进阶专栏中我将讲解指针的进阶用法与精髓。这里只是基础,应付考试完全够了。
2024-08-06 15:40:33
207
原创 C语言学习----函数
函数就是把一段代码封装起来,重复使用而避免大量重复代码。简化代码,使代码更简洁,高效。简单例子我们要找两个数的最大值,我们不可能每次都写一个if语句来找最大值,所以我们把它包装成max函数,每次找两个数的最大值时就可以调用函数。
2024-08-04 20:45:51
318
原创 C语言学习----常用函数
strcmp比较两个字符串是否相等 strncmp,前n个字符组成的字符串是否相同。注意变量的地址和变量不同,变量的地址用取址符&加变量名组成例如 &a;取绝对值,abs为取整数的绝对值,fabs为取浮点数的绝对值。注意,要使用C语言自带的数学函数需要导入头文件math.h。在主串中找子串,找到了返回头指针,否则返回空指针st。这段代码会要求从控制台输入一个整数,然后输出它。使用字符串函数时要导入string.h头文件。把一个字符串拼接在另一个字符串后面。将字符串转换为整数(浮点数)
2024-08-04 17:52:17
693
原创 C语言学习----语句结构
break与continue都是循环控制语句,break是直接跳出循环,continue是跳过本次循环。如果bool表达式为true则执行语句块1,语句块2则不执行,反之执行语句块2,语句块1不执行。do~while与while的区别就是do~while循环会先运行一次循环。default是case的何况都不满足时运行default的语句块。注意while循环中要更新bool表达式的值,否则就会形成死循环。注意,a++一定要写,否则就会一直输出hello world。从头一直运行到尾,没有分支与循环。
2024-08-04 17:13:11
612
原创 C语言学习----运算符
用于将一个值赋给变量,包括简单赋值(=)以及加等于(+=)、减等于(-=)、乘等于(*=)、除等于(/=)和取余等于(%=)等组合赋值运算符。= 大于,小于,等于,大于等于,小于等于,不等于。&,|,^,与,或,异或,>>,<< ,~,右移,左移,取反。文字解释,如果a大于b,max=a,否则max=b;a&&b,a和b有一个为false则为false。a||b,a和b有一个为true则为true。a,取反,a为true,则!+,-,*,/ ,%加减乘除取余。
2024-08-04 16:27:13
457
原创 C语言学习----数据类型
char 类型占一个字节,用于存放字符列入‘a’,‘b’,等等注意一个char类型只能放一个字符。float占四个字节,float只能提供6位有效数字,一般来说绝对6位,可能7为应该是6~7位。在这里要区分字符和字符串,字符是单个的,字符串是多个字符组成的,字符是单引号,字符串是双引号。在printf中输出true和false是用整型输出,true为1,false为0;在C语言中我们定义0,空指针为false,其他的为true。整型是32位,8位1字节,所以整型占4个字节.长整型是64位,占8个字节。
2024-08-04 15:32:52
484
原创 C语言学习----变量和常量
关于更高级的解释将会在后面深度解释。这里初学就这样理解就行。例如 1,2,3,4,这些不会改变的量叫常量。这里的a就是变量,它的值由0,变为了1。顾名思义,可以改变的量。
2024-08-04 13:50:14
229
原创 leetcode----第三题
无限项,按照原来的顺序组成的序列称为序列{Xn}的一个子序列。通俗理解,序列就是在原来序列中找出一部分组成的序列。了解子串后在看题目,找最长的不重复的子串,我们看到子串,子序列等问题首先想到。首先,由题意,我们找的是子串,那么什么是子串?子串可以有,123,234,1,2,3,2345等(连续)子序列可以有,134,15,156,245等(不连续)我们用bool数组来代替int数组,得到下面的代码。子序列:给定序列{Xn},从中。组成的子序列称为该串的子串。由定义可知子串一定是子序列。
2024-07-29 20:16:31
442
原创 leetcode----第二题
题目要求我们返回一个链表,并且给了我们两个链表,所以我们要写一个链表来存储每一位的数字,首先,我们遍历两条链表,将他们的对应的位数的数字相加,如果相加的结果大于9,则对10取余,剩下的就是当前位置的值,理所应当,下一位要加一(加法都学过的对吧?
2024-07-29 14:19:19
183
原创 leetcode----第一题
由题意:我们要找到两个下标使nums[i]+nums[j]==target;而且答案具有唯一性最简单的方法就是遍历数组(两层for循环找到两个下标i,j);
2024-07-29 13:54:58
295
原创 数据结构----栈
栈与队列相反是先进后出的(FILO)的一种数据结构。与链表相同也是由一个一个节点组成。我们重写队列中的方法改变队列的实现方式就能使用栈。队列。
2024-07-19 17:28:14
271
原创 数据结构----队列
队列是一种先进先出(FIFO)的一种数据结构。与链表一样也是由一个个的节点组成。只是我们在链表的添加和删除操作上加入了一点限制使得只能从队列的尾部(队尾)添加元素,只能从队列的头部(对头)删除元素。
2024-07-19 16:21:01
595
原创 前端学习笔记----第二天(常用标签1)
div标签实际上是没有任何语义的,它只是一个容器,在没有CSS修饰的情况下对页面布局没有任何影响。border: 图片的边框距离(当然,我们任然不推荐使用这个属性,在CSS中我们将学习更先进的技术。绝对路径:指文件的绝对位置,直达文件目录,通常以盘符开头,如D:\code\html等。加粗:<strong></strong> <b></b>删除线:<del></del> <s></s>下划线:<ins></ins> <u></u>倾斜:<em></em> <i></i><img />注意图像标签是单标签。
2024-07-19 14:48:20
321
原创 前端学习笔记-----第一天
html>HTML文件的根标签,所有的HTML文件的代码都应包含在这个标签内。HTML文件的主体标签,HTML文件的大部分代码都写在这里。html文件的头部标签,主要包含文件的编码标准,标题,等。1.所有的标签必须放在内 表现:设置网页元素的版式,颜色,大小(CSS)标题标签,页面的标题。结构:用于对网页元素的整理和分类(HTML)行为:网页的模型定义的和交互的编写(Js)
2024-07-17 14:37:03
330
原创 数据结构----链表
链表是一种只能从头开始遍历到尾的一种数据结构,链表由一个个结点(node)组成,每个结点由两部分组成即指针域和数据域,指针域顾名思义就是指针(我们先讨论单向链表),这个指针指向下一个结点,数据域就是我们要保存的数据。这就是一个简单的链表,我们简单分析一下,结点1的指针是指向结点2的,结点2的指针是指向结点3的,结点1 的数据域是1,结点2的数据域是2,结点3的数据域的4我们给出这个链表的部分代码int data;//数据域//指针域这是用结构体定义每一个结点之后开始初始化这个链表。
2024-07-16 19:00:59
530
1
原创 KMP算法
KMP算法是一种时间复杂度为O(m+n)的一种字符串匹配算法,属于简单算法的一种核心为永不回退的指针j,以及next数组,以后我们还会学习BM算法以及Sunday算法。
2023-11-12 12:37:31
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅