- 博客(38)
- 收藏
- 关注
原创 教教你呀-C#基础之基本语法
但是不可置否的是,C#的运行效率不如C++,但是通过优化可以接近C++的效率。在C#中,static void Main(string[] args)是程序的入口,如果没有这一方法,在该代码代表为一个程序时将无法运行。相较于C++的一般结构和JAVA的结构,C#更类似于JAVA,因为二者都是面向对象的语言。因此简单来说,C#就是由类和方法组成的语言,通过定义类和各种方法来实现程序的运行和调用。顶级语句我个人的理解是一种C风格的编程方式,不编写类的结构,而是直接进行代码的编写。
2025-03-06 18:33:33
256
原创 人话学Python-推导式
推导式是用于在序列之后进行元素解释、判断的语句,以此创建新的序列。具体的说,就是对迭代的值进行语句操作。而对于每一个推导式都可以使用类似语句展开,所以推导式实际上是一种简洁、高效的代码编写方式。可以明显观察到两种写法的代码复杂度不同。
2024-10-23 17:41:11
238
原创 人话学Python-集合
集合是一个无序的,存放不重复元素的序列。和列表等序列不同的是,集合中的元素没有顺序,每一次编译其中的元素顺序都会改变。其次,集合中的元素都是严格不相同的,也就是说每种数据在集合中都是唯一的。由于集合的这种特点,在需要进行数据去重,也就是单个数据的个数对于最终实现的功能没有影响时,集合是一种很好的选择。同样的,字典也可以实现去重的操作,同时也可以进行计数。
2024-10-23 17:14:29
283
原创 人话学Python-字典
字典在Python中的用处和用法和C++中的map类型类似,都是通过“键值对”的方式存储数据和数据之间的关系。在字典当中,总有一个key对应一个value,两个数据所组成的数据类型就是字典。
2024-09-22 19:00:48
472
原创 人话学Python-循环语句
while语句的组成由判断条件和执行语句组成。当满足条件时会不断执行后续语句,然后再循环执行的语句结束之后再次回到条件判断,如此循环。死循环可以在编译器中使用ctrl+c停止。在while语句外添加else语句,表示在while语句结束之后,进入else语句中执行后续语句。
2024-09-21 18:56:18
338
原创 人话学Python-条件语句
作为最常见也是最重要的语句之一,条件语句其实非常简单易懂。现在手上购置了公司的股票,想要在合适的价格出手。这时就会出现几种情况:1:股票涨价没有达到预期值,继续持股。2:股票涨价达到预期值,全部出售。3:股票有下跌趋势,及时出手。由于要讨论不同的条件下不同的情况,所以需要一种特殊的语句通过判断某种特殊的条件继续程序。这也就是条件语句的使用场景。
2024-09-21 16:24:48
388
原创 人话学Python-元组
元组的定义和列表相似,不同点在于元组的元素不能进行修改。创建元组的操作也与列表类似,不同之处在于两种类型定义所使用的符号不同注意:当元组中只有一个元素时需要在元素末尾加上逗号,否则定义元组的括号会被认为是运算符。
2024-08-24 21:13:27
237
原创 人话学Python-列表
序列是Python中最基本的数据结构。对于序列中的每一个值都有其对应的位置,在Python中称为索引。由于Python中的计数逻辑,第一个索引为0,第二个索引为1,以此类推。Python中有6个序列的内置类型:列表、元组、字符串、Unicode字符串、buffer对象和 xrange对象。
2024-08-18 18:06:48
550
原创 C++字符串<string>库
string在变量的声明以及初始化与C语言的char类字符串一致。但是string类增加了对多个字符串连接的运算。C++中使用string类需要添加库。
2024-08-09 12:30:16
383
1
原创 人话学Python-基础篇-字符串
如果我们要取出字符串中单独的字符,需要使用方括号来表示取得的位置。如果要取出字符串的子串,就需要用到冒号表达式。 上面的冒号表达式意为从字符串的第a+1位取到第b位 需要注意的是,和大部分编程语言一样,Python也是从0开始计数。
2024-07-10 00:03:55
363
原创 人话学Python-基础篇-数字计算
对于最常见的数据类型,数字在Python中分为三类:表示的是整数类型的所有数字,包括正整数,负整数和0。和C语言不同的是,Python中的int型没有范围的限制,理论上可以从无限小的整数取到无限大的整数。其中一个特殊的数据类型是整型的一个分支。表示的是由整数和小数组成的数字。同样没有范围限制。浮点型也可以用科学计数法表示。表示的是由实部和虚部组成的数字,用或者表示。其中实部和虚部都是浮点型。
2024-07-09 15:17:04
798
原创 人话学Python-基础篇-输入输出,数据类型转换,注释
一:输入输出一:输入输出Python的输出并不像其他语言一样那么复杂,有一大堆的标识符、占位符等。只需要一个简单易懂的单词就可以完成变量的输入。只需要一个简单的print就可以完成输出。不需要占位符也不需要其他多余的符号。print(打印)就是py中用于简单输出的函数。而print函数会默认以换行结尾。这也就意味着每一次调用print函数都会换一行进行输出。如果我们需要让每一次调用print函数都在一行里输出,就需要在我们想要输出的内容后面加上一段语句:end=""
2024-07-09 14:15:35
306
原创 数据结构-顺序表的交换排序
快速排序是对冒泡排序的一种改进,它的基本思想是铜鼓哦一趟排序将待排序的数据分割成独立的两个部分,其中一部分比另一部分要小。然后分别对这两部分继续分割,直至整个序列有序。顺序表的冒泡排序和数组的冒泡排序的原理相同。通过不停比较相邻两个数据,如果不满足排序要求就交换两个值,直到所有的记录都排好序。快速排序有递归操作,每层递归都要使用到栈来存放指针和参数。通过冒泡排序的算法可知每次交换,循环都需要比较。(2)将剩余的部分分割成两个子序列。使用的方法是双指针法,快速排序并。,最坏情况下空间复杂度为。
2024-06-25 21:24:10
652
原创 数据结构-顺序表的插入排序
顺序表的排序可以看作数组排序的拓展。基本逻辑和数组排序的逻辑大同小异。由于顺序表中可以存放不同种的数据类型,进而和结构体排序又有相似之处。其中要注意的是(->)和(.)的区别。-> 符号是针对指针进行的操作,而 . 则是针对结构体的数据进行操作。
2024-06-24 17:01:15
1527
原创 数据结构-图的存储结构-邻接矩阵
图的结构十分复杂,不仅各个结点的度不同,各个顶点之间的路径也不尽相同。但是图的主要组成部分比较清晰,分为顶点信息和边或者弧的信息。
2024-06-21 13:32:35
828
原创 数据结构-图的基本概念
图时由非空的顶点集合和一个描述顶点之间关系的集合组成。可以定义为:G表示一个图,V表示点集,E表示边集。集合E的每一个二元组都包含两个值和,表示为一条边的两个顶点。
2024-06-21 11:37:55
863
原创 数据结构-线索二叉树
在二叉树当中由于各种遍历的次序不同,所以由先序、中序、后序遍历得到的结果都不相同。以B点为例,在先序遍历中前驱、后继分别为A、D。中序遍历中前驱、后继分别为I、J。后序遍历中前驱、后继分别为E、F。 对于这种在不同遍历顺序下前驱、后继不同的情况,我们可以利用二叉链表中的空指针域,将空的左孩子指针指向前驱,空的右孩子指针指向后继。称这种新的指针为线索,得到的新的二叉树为线索二叉树。
2024-06-14 21:05:34
506
原创 数据结构-二叉树的基本操作
顺序存储结构适用于完全二叉树,用一组连续的存储单元按照完全二叉树的每个结点编号的顺序存放结点内容。顺序存储利用了完全二叉树的结点编号的性质。特点是空间利用率高,便于寻找孩子和双亲。但是如果二叉树不是完全二叉树,则需要将空缺的位置用其他符号填补,如果空缺的结点过多则会导致空间利用率的下降。因此,为了更好的应对一般情况,需要对二叉树的结点个数进行动态存储。
2024-06-13 00:50:44
640
原创 数据结构-树的性质
树是一个有限数据元素的集合,当数据的量为0时,称为空树。在一个非空树T中,最上方的结点没有前驱结点,称为根节点。在一个数据量大于1的树中,除了根节点之外的其余数据元素可以被分为m个互不相交的集合T1,T2,T3等。其中每一个集合T都可以看作一个单独的树,称为整个树的子树。树拥有层级结构,而这种层级结构由递归实现。从根节点开始,根节点为第一层。经过一次递归得到的结点称为第二层,以此类推。而如果同一层的节点之间互相连通,则不成为树结构。
2024-06-09 22:48:21
427
原创 串的模式匹配-BF算法
串的模式匹配就是在主串 s 中查询子串 t 的位置。如果在查找过程中主串 s 与子串 t 完全匹配(即字符串相等),则返回子串 t 在主串 s 中首次出现的位置。否则则匹配失败。其中子串 t 称为。
2024-05-10 22:17:57
723
1
原创 数据结构-队列
队列和栈一样也是一种特殊的数据结构。和名称一样,队列的特性是先存储的数据会放在队列的开头,之后存储的数据会跟在前一个数据的后面,像排队一样。在输出数据的时候从队列的开头开始输出,然后按顺序依次输出。(图片来自。
2024-05-07 17:11:15
480
原创 数据结构-栈
首先对于栈,最先要解决的就是数据的输入和输出的问题。先前的线性表都是从头开始存储,然后从头开始输出。而栈这种特殊的线性表不仅输入和输出的顺序不一样,并且还有特殊的动态存取:存储一个元素,然后输出弹出一个元素,再存储一个元素。为此,我们需要定义一个始终指向栈顶元素的指针,每次往栈中添加元素时,移动指针指向新添加的元素。每次将栈中元素输出时,移动指针指向下一个将要进行操作的元素。//栈中存储的数据int top;//始终指向栈顶的指针int main()PStack S;//定义指向栈顶元素的指针。
2024-05-07 12:46:16
690
1
原创 刷题复健-打印沙漏&&Painting the Ribbon
首先计算在当前给出的段数和颜色数可以分割出的最多的“块”,然后比较能改变的数量是否大于最多的“块”即可。首先计算给出的数字最多可以打印多少行,然后循环控制输出即可。很基础的循环打印题,但是只能说太久没写题了,卡了一会儿。
2024-04-18 19:11:57
272
1
原创 Progressive Square&&Product of Binary Decimals
500*500的数组会出现TLE的情况就是写了个三循环或者以上的循环。这题一开始是用暴力和前缀和求解。记录第一个元素然后把第一行的所有元素优先算出来,再对于每一列进行等差计算。但是由于本题可以看作是在所给的数字中选择数字填入二维数组,当应该要填入的数字没有的时候,就输出“NO”。所以可以选择哈希优化。每一行是等差数列,每一列也是等差数列。判断一个数组是否能被由0,1组成的数字整除。看 t 的范围,很小,直接打表。真是太简单了哈哈哈。(谁说打表不算好方法)
2024-04-17 14:53:37
456
原创 数据结构-单链表
一:什么是链表: 定义: 不使用连续的内存空间,而是使用指针的形式将每一个数值建立起次序关系的一种数据结构。由于各个数据之间并不是物理意义上的相邻,所以对于存储和运行的效率比顺序表要快速。在插入和删除等操作时也不需要将数据大量移动。 特点: 相邻元素的地址并不相连,而是用指针相连接。二:单链表的常用操作: 什么是单链表: 单链表是通过任意的存储空间来存储数据元素。对于一个数据元素,不仅要存放自身代表的数据,
2024-03-31 22:06:13
428
2
原创 人话学Python-基础篇-变量,关键字,转义符
Python读代码和我们人看书一样,从上到下,从左到右一行一行读取代码并进行解释。 对于在一个if语句或者for语句的嵌套中,每一次嵌套用Tab缩进表示嵌套中的代码 如果一行代码内容太多,可以在一行结尾用反斜杠"\"链接与下一行的内容。而元组、列表、字典中换行则不用反斜杠"\"链接。一:变量 变量是一个保存数据的容器,对于任意一个变量,不论有没有赋值,都会指向一个值(如果没有手动赋值计算机会随机赋予一个值)。
2024-03-29 14:56:18
397
1
原创 人话学Python-先导篇
1:为什么非计算机专业还要学python?python更简单,更直观,更符合人最直接的理解。 如果你是一个学过最基础英语的人,知道print,input之类单词的意思。就算你任何python语法没有学过,但给你一个简单的py程序,你也可以读懂这个程序的目的。
2024-03-29 13:57:06
342
1
原创 数据结构-顺序表
一:什么是顺序表: 定义: 使用内存中的一段地址连续的存储空间进行顺序的存入和读取的一种数据存储方式。在顺序表中,除了第一个元素没有前驱元素、最后一个元素没有后驱元素,其余所有元素都有唯一的一个前驱元素和后驱元素。由于顺序表是将元素存入地址连续的空间中,这种物理上的相邻使顺序表的理解十分清晰。特点: 相邻元素之间的地址也相邻,通过第一个元素的地址就可以知道每一个元素的地址。 具有按数据元素的序号随机存取的特点。
2024-03-12 19:15:29
916
1
原创 Cf 931 Div.2-A:Too Min Too Max && B:Yet Another Coin Problem
如何找最少的硬币数量?当我们的一块钱硬币有三块的时候,可以替换为一块三块钱的硬币。当我们的三块钱硬币有两块的时候,可以替换为一块六块钱的硬币。当我们的六块钱硬币有五块的时候,可以替换为两块十五块的硬币。当我们的十块钱硬币有三块的的时候,可以替换为两块十五块的硬币。换句话说,我们手中的一块钱硬币不会超过三枚,三块钱硬币不会超过一枚,六块钱硬币不会超过四枚,十块钱硬币不会超过三枚。十五块钱的硬币数量没有上限,并且对于十块钱的硬币,不会超过两枚。每个数值的硬币逐次增加,计算总和,再计算是否需要十五块钱的硬币。
2024-03-05 16:25:55
422
1
原创 洛谷-【模板】队列
队列是一种数据结构,用于存放有顺序的数据,先存入的数据会被放在队列顶部。在队列中的元素不能改变原有顺序,对于队列底部的数据就是最后存放的数据。如果以队列顶部的元素的视角,整个容器就像是排队时候排起的长队,先来的站在离顶端近的地方,后来的站在离顶端远的地方。STL: C++标准库中内置了容器,可以模拟队列的操作。需调用头文件。 STL中队列的一些基础操作:
2024-02-26 15:57:32
636
1
原创 洛谷-【模板】栈
栈是一种数据结构,用于有顺序的存放数据,先存入的数据会被放在栈底,然后不断往上存放。在栈容器内数据不能改变原有顺序,对于位于栈顶,也就是最后一个存放的数据,会有一个指针指向其地址,然后不论是存入数据还是删除数据,指针都会指向栈顶的元素,所以栈是一种先进后出的数据结构。STL: 在C++内置的标准库中有容器,可以模拟栈的操作。需调用头文件。 STL中栈的一些基础操作:
2024-02-26 15:57:09
748
1
原创 Vlad and Division题解
Vladislav has n non-negative integers, and he wants to divide all of them into several groups so that in any group, any pair of numbers does not have matching bit values among bits from 1-st to 31-st bit (i.e., considering the 31 least significant bits
2024-02-26 11:04:31
543
1
原创 Chaya Calendar&&Word on the Paper-24.2.22摸鱼
Cf Round 927(Div.3)-B.Chaya Calendar
2024-02-22 21:47:56
450
1
原创 Vlad and a Sum of Sum of Digits&&洛谷P1605-迷宫&&改变数组元素 24.2.21刷题
Please note that the time limit for this problem is only 0.5 seconds per test.Vladislav wrote the integers from1ton, inclusive, on the board. Then he replaced each integer with the sum of its digits.What is the sum of the numbers on the board now?
2024-02-21 20:10:52
1269
原创 截断数组 && LR-remainders 24.2.20刷题(摸鱼)
给定一个长度为n的数组a[n]现在,要将该数组从中间截断,得到三个非空子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?1≤n≤1e5,−10000≤a≤10000数组元素顺序固定,问题转化为:是否可以将数组分成三个区间和相等的部分;
2024-02-20 22:24:58
909
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人