- 博客(46)
- 收藏
- 关注
原创 Javase学习day1-前置知识
编译型语言:需要先编译,运行效率高,但不便于快速调试。解释型语言:逐行解释执行,便于调试和跨平台,但速度较慢。12、关于java的一些知识一、jdk,jre,jvm的基本概念JDK是开发 Java 应用的完整工具包,包含 JRE 和开发工具。JRE是运行 Java 应用程序的环境,依赖 JVM 来执行字节码。JVM是执行 Java 字节码的虚拟机,为 Java 提供了跨平台的能力。
2024-09-29 23:20:03 800
原创 区间的合并
给定 n个区间 [],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和 [2,6]可以合并为一个区间 [1,6]。
2024-09-13 13:22:08 909
原创 算法里面的离散化
离散化的主要目的是将连续的值或大范围的值映射到一个有限的集合中,以便进行高效的存储和处理。这通常通过对连续的数据进行排序、分组、或者映射来实现。离散化的关键是将原始的、可能是连续或无限范围的数据,转化为有限且可处理的编号或索引。这样不仅优化了存储空间,也提高了数据处理的效率。二、在算法中,“映射”是指将一个集合中的每个元素通过某种规则或函数转换为另一个集合中的元素的过程。这一概念广泛应用于数据处理、函数设计和数据结构中。
2024-09-11 22:19:05 1076 1
原创 归并排序与其例题
归并排序的基本流程是递归地将数组分成两半,分别对这两半进行排序,然后将它们合并成一个有序数组。该代码实现了归并排序的这一过程,通过分割、排序和合并三个主要步骤来完成数组的排序。那上面的代码就是归并排序的模板,和快速排序一样要理解与记忆,当涉及到归并排序时,就可以用这个模板。三、实战例题给定一个长度为 n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。
2024-08-27 00:08:39 741
原创 快速排序与其例题
q[l]和q[r]用于获取区间边界的值,不适合用来确定区间的中点。用于获取区间中点的值,适合用于需要中点信息的算法,如二分查找和分治法。根据你具体的算法需求,选择适当的数组索引访问方式非常重要。如果你在实现二分查找或类似的算法,使用中点索引是必要的,否则可能无法正确地执行算法逻辑。(2)在算法中,尤其是涉及到查找、排序或分治的场景时,选择左边界点、右边界点还是中间点对算法性能有重要影响。特别是对于二分查找等分治算法,选择中间点通常是优化性能的关键。
2024-08-26 22:44:03 930
原创 c++里面stl的一些值得注意的知识
也可以接受一个自定义比较函数,用于定义排列的顺序。例如,我们可以使用自定义的比较函数来生成降序排列。// 自定义比较函数:大于// 打印所有降序排列do {return 0;用于生成序列的下一个排列。默认行为:生成升序排列的下一个排列。自定义行为:可以通过提供比较函数来生成不同顺序的排列。返回值true表示成功生成了下一个排列,false表示当前排列已经是最后一个排列。这个函数非常有用,可以用于需要生成所有排列或特定排列顺序的场景,例如排列组合、算法优化等。
2024-08-20 18:17:45 692
原创 难题:反转链表
我要在反转链表中让2结点指向1结点,那我就要知道这两者的地址值,此时2这个结点的地址值就是prev,1结点的地址值就要在前面没有反转之前的链表中找了,
2024-08-09 01:34:59 963
原创 数据结构学习:线性表的顺序表示和实现1
这是什么意思呢,意思就是你要存什么类型的变量,是 int,char,double等一般类型变量,还是你自己定义的结构体类型变量,是什么类型,就把那个ElemType那个地方替换成那个,注意要加括号的,强制类型转换都是要加的。线性表的顺序存储表示和链表表示不一样,顺序存储表示一般不需要什么地址,只需要知道基地址那么后面的也就知道了,所以顺序存储线性表的组成就是由存储元素的数组和记录线性表实际长度的变量组成,2、c++中的动态存储分配(就是上面说的那个为线性表开辟空间的那个,只不过是c++里面的形式)
2024-01-20 17:24:42 1020
原创 结构体的一些补充知识
指向首地址,就是想利用顺序表来存储信息,因为知道了基地址,那么后面的所有地址也就都知道了,这是利用顺序表的特性来写的代码,以此来存储信息。如果我们不对指针进行初始化,它的值就是未定义的,可能是随机的,这会导致程序出现不可预知的错误。上面就是我所想表现的结构体与指针的混合使用,当然也有函数的,这就是数据结构里面的内容,具体的部分等我学到后面再继续补充和总结。就是结构体的名称,而这个名称位于结构体定义的末尾,分号之前。结构体的内存布局是按照成员变量的声明顺序进行的,每个成员变量占据一定的内存空间。
2023-12-21 18:16:39 1286
原创 c++里面的知识学习:指针与引用
通过定义指针变量并将其初始化为某个地址,然后将该指针变量赋值给普通变量,就可以在普通变量中存储地址。但是需要注意,这种情况下普通变量仍然存储的是指针变量的值(即地址),而不是直接存储地址本身。其中,数据类型表示指针所指向的目标变量的数据类型,* 表示该变量是一个指针变量,指针变量名是程序员自定义的变量名。要注意的是,指针变量需要初始化为有效的内存地址,否则可能导致不可预测的行为。普通变量和指针变量之间的区别在于它们所存储的内容以及对应的操作方式。类型数据的指针变量,它存储的是一个内存地址,可以通过。
2023-12-21 16:02:40 979
原创 c++里面的知识学习:类、结构体
构造函数是一种特殊的成员函数,在创建对象时被调用,用于初始化对象的数据成员。:成员函数是类中定义的普通函数,它们用于操作对象的状态和实现类的功能。:析构函数是另一种特殊的成员函数,在对象销毁时被调用,用于清理对象占用的资源。结构体可以包含多个成员变量,每个成员变量可以是任何合法的C++数据类型,包括基本类型和自定义类型。这只是一个简单的类定义示例,实际上,类可以包含更多的数据成员和成员函数,并且可以有更复杂的功能。:使用类名和括号创建类的对象,并通过构造函数初始化对象的数据成员。接着,我们调用了对象的。
2023-12-19 13:31:44 1188
原创 函数难题:排列
给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。共一行,包含一个整数 n。按字典序输出所有排列方案,每个方案占一行。1≤n≤9输出样例: 这代码中蕴藏的知识十分多,让我一一来解释与总结。 一、其中的代码语句的深刻理解。1、st[i] = false; 该语句会将当前选择的元素标记为未使用,从而恢复现场,回溯到之前的状态。这个过程是在dfs函数中进行的,当搜索到一个合法的方案时,dfs函数会向上回溯,并且撤销之前做出的选择,重
2023-12-17 00:15:47 903
原创 函数题:走方格
给定一个 n×m的方格阵,沿着方格的边线走,从左上角 (0,0)开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m) 一共有多少种不同的走法。
2023-12-12 14:05:45 438
原创 函数中档题:数组去重
所以不是说有一个for循环就直接把括号括起来,然后直接在里面写,这是一种惯性思维,是需要改进的。接下来我来说说这个布尔变量的好处,首先那个bool is_exist 是用来标记有没有重复的元素的。他放在内层循环的前面,方便下一次的循环操作。如果我们不用这个布尔变量,那么就会出现无法实施那个if语句的情况。那个if语句就会变为。
2023-12-09 11:39:42 357
原创 函数基础题:数组翻转
给定一个长度为 n 的数组 a和一个整数 size,请你编写一个函数,,实现将数组 a中的前 size 个数翻转。输出翻转后的数组 a。
2023-12-02 20:26:29 726
原创 打印字符串
给定一个字符串,请你编写一个函数,,将这个字符串打印出来。注意:对于Python语言,print是内置函数,所以本题中使用这个函数名,来避免跟内置函数产生冲突。
2023-12-01 22:56:50 519
原创 函数基础题:复制数组
给定两个数组 a 和 b 以及一个整数 size,请你编写一个函数,,将 a 数组中的前 size 个数字,复制到 b 数组中。复制完成后,输出 b 数组。
2023-12-01 21:27:40 479
原创 函数基础题:打印数字
输入一个长度为 n 的数组 a和一个整数 size,请你编写一个函数,, 打印数组 a 中的前 size个数。注意:对于Python语言,print是内置函数,所以本题中使用print1D()这个函数名,来避免跟内置函数产生冲突。
2023-11-29 23:55:53 378
原创 c++里面的函数学习 day3
返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐式地执行return。所以一般void类型的函数后面不写return。通常情况下,void函数如果想在它的中间位置提前退出,可以使用return语句。return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。没有返回值的return语句只能用在返回类型是void的函数中。
2023-11-27 21:21:17 391
原创 c++里面的函数学习 day2
由输出数据可以看出,第一次输出的时候是调用的output函数,这个时候是正常输出,所以输出的是原数组。这里注意,那个函数里面我赋值的二维数组全是1这个元素的那一句语句,是在输出的后面的,是不会影响我前面正常的输出的。/*这是用指针写的样子,和一维数组时很像,但是这里要注意,只要是多维数组传参,要用指针的格式来写,那必须用一个括号将指针符号和数组名字给括起来,形成所谓的。这一句是用来声明一个指向包含10个整数的数组的指针,它的作用是让指针能够指向整个数组,而不仅仅是数组的第一个元素。
2023-11-26 18:08:08 968
原创 c++里面的函数学习 day1
从这里可以发现输入的值3和4,输出的时候变成了10和20,说明输入的值被改变了,随着函数内部值的变化而变化。这种就是传的引用参数,函数内部变,那么原输入也变,这是它的一个特点。这里可以发现,我在函数里面自己初始化了x和y的值,那么在调用这个函数时,不管你外面输入的什么值,最后的结果仍是20,说明改变了函数内部的参数的值后,会影响最终输出的结果。但是输入的值是多少还是多少,不会改变,就像这里输入了3和4,输出后也还是3和4,说明函数内部参数值的变化并不会影响输入值的值,这就是传递非引用参数时的情况。
2023-11-25 19:40:13 328
原创 字符串最大跨距
有三个字符串 S,S1,S2,其中,S 长度不超过 300,S1 和 S2 的长度不超过 10。现在,我们想要检测 S1 和 S2 是否同时在 SS 中出现,且 S1 位于 S2 的左边,并在 S 中互不交叉(即,S1的右边界点在 S2 的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的 S2 的起始点与最左边的 S1 的终止点之间的字符数目)。如果没有满足条件的 S1,S2 存在,则输出 −1。例如,S=, S1=ab, S2=ef。
2023-11-22 22:24:28 815
原创 字符串乘方
给定两个字符串 a 和 b,我们定义 a×b为他们的连接。例如,如果 a=abc而 b=def, 则 a×b=abcdef。如果我们将连接考虑成乘法,一个非负整数的乘方将用一种通常的方式定义:a0=``(空字符串),=a×。
2023-11-18 23:40:13 211 1
原创 字符串移位包含问题
对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。给定两个字符串 s1 和 s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。
2023-11-18 00:43:13 592 1
原创 字符串中最长的连续出现的字符
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和 tabtab),如果这样的字符不止一个,则输出第一个。
2023-10-19 23:41:04 426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人