自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 C语言实现杨辉三角形

杨辉三角,是在三角形中的一种几何排列,中国南宋数学家1261年所著的《》一书中出现。在欧洲,(1623----1662)在1654年发现这一,所以这个表又叫做。帕斯卡的发现比要迟393年,比迟600年。通过观察我们可以返现,每行的第一个和最后一个元素都是1,中间的元素等于自己左上方和右上方两个元素之和。

2023-12-31 17:53:24 661

原创 无重复字符的最长子串

利用滑动窗口的方法来解决该问题,首先我想到的是用哈希表来记录每个字符是否出现过,再遍历字符串,观察字符是否重复出现,若不重复出现,则右指针向右移动,如果重复出现,则释放左指针的数值,让它再次回到未被访问的状态。rk - i +1的值即为子串长度,找到最大长度即可。

2023-12-22 10:22:29 62

原创 Python 中 >>> 和 print的区别

在 Python 中, >>> 是交互式 Python 解释器的提示符(prompt)。它表示用户可以输入 Python 代码或表达式,并立即得到计算结果。一般情况下,当你在命令行中启动 Python 解释器时,会看到三个大于符号 >>> ,表示 Python 正在等待你输入代码。在 >>> 提示符下,你可以输入 Python 代码,比如算术表达式、变量赋值等,Python 解释器会立即执行你输入的代码并返回结果。这使得开发者可以快速尝试小段代码或者进行实验。

2023-12-11 09:37:21 718 1

原创 LeetCode 34在排序数组中查找元素的第一个和最后一个位置(C语言实现)

当看到这道题的时候我的第一思路是通过for循环来遍历数组对target进行寻找,定义一个int* 类型的ret数组,定义n和m,n和m的值即是ret数组的返回值。当找到在数组中找到target的时候返回n,m的值。

2023-12-06 16:20:05 116

原创 leetcode 2342.数位和相等数对的最大和

题目描述:题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台看到这道题的时候,我首先想到的是创建一个数组,用来存放数位和,之后对数位和 进行遍历,当数位和相等时,nums[i] + nums[j]进行加和求解,但是因为二重for 循环的遍历时间复杂度过大,程序运行不下去,所以这里我又换用了哈希表法来对数组进行操作,从而降低时间复杂度。sumNumber函数的作用是求数组中数的数位和。 maxNumber函数是用来比较数的大小。 返回的ret是最终答案,ret置为-1,同时创建一个哈希表,

2023-11-20 20:28:05 40

原创 LeetCode热门100题

描述:题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台思路:对数组进行遍历,将数组非零的部分放置在前面,遇到零则跳过,同时记录非零数的个数,最后将数组中的零,放到数组的最后。

2023-11-09 15:58:11 44

原创 C++进制转换

【代码】C++进制转换。

2023-07-03 14:43:46 406

原创 数据结构与算法分析(三元组)

在数值分析中,经常出现一些阶数很高的矩阵,同时在矩阵中有许多值相同的元素或是零元素。有时为了节省存储空间,可以对这类矩阵进行。假若值相同的元素或者零元素在矩阵中的分布有一定规律,则我们称此类矩阵为。假设在m×n的矩阵中,有t个元素不为零。令δ = t / (m+n),称δ为矩阵的。以下是一些三元组表的操作,有判断矩阵是否对称,判断是否为稀疏矩阵,将矩阵进行转置。而三元组表则是用来存储稀疏矩阵的一种压缩方式。δ <= 0.05时,矩阵为稀疏矩阵。

2023-06-26 16:56:54 226

原创 数据结构与算法分析(串)

先发个标题,拿个徽章,内容明天写。

2023-06-25 22:44:35 30

原创 数据结构与算法分析(队列)

队列和栈一样是一种操作受限的线性表,只允许在表的一端进行插入,在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特性是先进先出(FIFO)。

2023-06-19 17:24:30 53

原创 leetcode 20.有效括号

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。3.每个右括号都有一个对应的相同类型的左括号。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2023-06-19 10:17:26 37

原创 C++学习day 4

要向文件中写入数据,首先要声明一个ofstream类型的变量:ofstream output;为了读取一个文件,首先要声明一个ifstream类型的变量:ifstream input;这条语句创建了一个叫做,test.txt的文件,如果该文件已经存在,则原文件会被覆盖。input.eof()函数,当文件没有可读取的内容时,eof()函数返回true。在完成这些代码之后,需要调用input对象的close函数。为了写入数据,使用流插入操作符(<<),传入数据。同时,为了读取数据,使用输出流操作符(>>)。

2023-06-18 16:58:41 73

原创 143.重排链表

利用getLen函数,得到L的长度,进行while循环,当i <= j时,将s中的节点插入新的链表P中,若j<i,则将r中的Ln插入P链表中,直到i+j = len,及i和j相加等于链表的长度为止,此时的P即为所求,如果此时函数的类型是LinkList,返回P即为所求了,但是函数是void类型,所以还要更改L中的值,此时用一个while循环,将P中的值赋值给L即可。

2023-06-15 17:36:56 76

原创 C++学习 day3

与仅仅只代表一个字符的char类型不同,C++大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的 string 类。当声明一个类型的变量时,变量实际上代表的是一个对象。利用头文件,可以实现如下功能。string不是原有的数据类型,它被认为是一个。库函数。

2023-06-15 16:08:43 47

原创 C++学习笔记 day2

定义:分支语句是一种让用户选择应该执行哪一个备选方案的语句。条件:分支语句使用的条件是布尔表达式:true或false。

2023-06-15 00:03:08 76

原创 86.分隔链表(C语言实现)

分别定义两个链表p和q,初始化一个链表P,让p和q指向输入的链表L。第一个while循环遍历链表p,当p的值小于输入值时,创造一个节点s,将s插入链表R中,第二个while循环,遍历链表q,当q的值大于等于输入值时,将节点插入链表R,最后输入R->next(因为头节点是NULL,所以要返回R>next否则会出现如下结果)给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。商业转载请联系官方授权,非商业转载请注明出处。

2023-06-11 19:18:54 63

原创 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。[1,2,3,4,5],fast指针会指向4,此时fast->next->next为空,跳出循环。交换时fast指针最终会指向4,此时fast->next为空,要跳出循环。如果是奇数长度的链表如。:一定要在while中利用if来判断快指针是否为空,例如是偶数长度的链表时[1,2,3,4],利用快慢指针的思路,将快指针与慢指针中的值进行交换。

2023-06-11 14:03:38 26

原创 leetcode 682.棒球比赛(C语言实现)

本题用到了栈的思想,用switch来实现题目中的各种功能,当出现字符数组中的数字时,将数字压入栈中,遇到运算符号时,将运算后的结果压入栈中,每次执行后都更新sum值,最后输出sum。比赛开始时,记录是空白的。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。1."+" - 表示本回合新获得的得分是前两次得分的总和。2."D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。题目数据保证记录此操作时前面总是存在一个有效的分数。

2023-06-10 20:10:11 210

原创 数据结构与算法分析(栈)

栈有时又叫作LIFO(后进先出)表,是限制插入和删除只能在一个位置上进行的表。首先栈是一个线性表,但限定这种线性表只能在某一端进行插入和删除操作。采用顺序存储的栈称为顺序栈,它利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时附设一个指针(top)指示当前栈顶元素位置。采用链式存储的栈称为链栈,链栈的优点是便于多个栈共享存储空间和提高效率,且不存在栈上溢的情况。

2023-06-10 16:29:26 31

原创 C++学习day1

endl(end line)表示结束行,向控制台发送一个endl会输出一个换行,并刷新输出缓冲区,保证输出内容立即显示出来。这行的作用是告诉编译器使用标准命名空间,减少代码的冗余。注意C++引入的头文件是为了区分与C语言的库,所以后面没有.h。运算符 "

2023-06-05 22:31:19 29

原创 leetcode链表的中间结点(简单)

利用快慢指针,慢指针slow走一步,快指针fast走两步,当fast走到终点时,返回slow。首先求出链表的长度,之后通过len / 2,找到链表的中间位置,之后按值查找。

2023-05-29 12:04:50 38

原创 leetcode二进制链表转整数(C语言)

链接:https ://leetcode.cn/problems/convert-binary-number-in-a-linked-list-to-integer/solution/jin-zhi-zhuan-huan-by-vvonderful-bhaskar-qhjb/作者:vvonderful - bhaskaraqnf。注意:使用pow()函数是记得引入头文件。参考了大佬的计算方法。

2023-05-26 17:41:30 36

原创 leetcode回文链表(简单)C语言实现

首先用一个函数对链表进行反转,将链表逆置,同时在isPalindrome函数中,逐一比较原链表和逆置链表中的值,如果有值不相同则返回false,该链表不是回文链表;否则返回true,该链表是回文链表。

2023-05-26 15:31:04 60 1

原创 leetcode移除链表元素(简单)C语言实现

else if里面的判断条件,一定要把prev!= NULL写在前面,不然prev->next行会报错。代码实现,及通过while循环来判断节点的值是否与要删除的值相同,如果相同则删除该节点。及prev->next可能为空指针的错误。

2023-05-22 22:53:39 78 1

原创 leetcode反转链表C语言实现(简单)

如图,是一个定义好的链表,当链表发生逆置的时候,NULL也会被移动到首位,所以要加上。q = R->next这步,从第二个元素开始遍历。我的思路是用头插法对链表进行逆置操作。

2023-05-21 21:57:05 71 1

原创 leetcode相交链表(简单)

leetcode上面的报错,说是我例子一没有通过,但是我感觉是他的样例有问题。在VS 2022上可以运行但是不知道为什么在leetcode上无法运行。下面是在VS 2022上的运行效果图,当有相交的链表时,输出相交链表。,希望有明白的大佬可以指点我一下。预期结果应该是1而不是8吧。

2023-05-19 16:49:40 60 1

原创 LeetCode环形链表(简单)

这道题我的思路是使用快慢指针,定义慢指针slow和块指针fast,slow每次移动一位,fast指针每次移动两位。= NULL)判断链表是否为空,若fast == NULL则链表为空,若fast->next == NULL则链表只有一个值,链表无环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。若均为空,则执行while循环,当slow慢指针和fast快指针相遇时,链表有环。给你一个链表的头节点 head ,判断链表中是否有环。

2023-05-19 10:54:24 59

原创 leetcode链表去重(简单)

在leetcode上提交是记得删掉main函数。删除所有重复的元素,使每个元素只出现一次。给定一个已排序的链表的头。

2023-05-14 17:52:00 125

原创 C语言实现多项式相乘

为了方便运算,我将链表进行了从大到小的排序,从而默认第一个数的指数最大,所以在传参时不要忘记。思路仍然是将链表先转化并存储到数组当中。先用sortList函数对链表进行排序。,不然函数运行时会报错。

2023-05-10 15:56:20 334

原创 数据结构与算法分析(C语言)多项式相加

函数,将排好序的链表进行多项式相加(及指数相同的数字进行相加),定义一个数组,将指数(index)看为数组的下标,系数的加和看为数组的值。最后创建结点和新的链表,将数组的下标赋值作为新结点的指数,数组值作为新结点的系数,通过尾插法插入新链表,即可完成多项式的加和。我的思路是,首先创建两个链表,接着将两个链表合并为一个链表(之后将合并后的链表进行排序(

2023-05-10 14:17:17 900

原创 数据结构与算法分析(c语言)第三章交集和并集

因为如果不判重的话L1[0]会在循环中两次跟L2[0],L2[1]匹配即1这个数组被两次匹配到,所以要有第三重循环,当L1中的数据被重复匹配时,则要置flag为1,从而不再把重复的数据输入链表。3.4给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∩L2的过程代码实现。如果没有判重操作的话最后输出的结果会是1,1,3,5。一定不要忘记这一步的判重操作,举个例子来说。

2023-04-22 09:04:05 324

原创 数据结构与算法分析(C语言)

3.2的实现见PrintLost和GetElem函数,GetElem函数的功能是实现按序号查找链表中的值,所以在PrintLost函数中传入循环调用GetElem函数,GetElem传入的第一个参数即链表L,第二个参数即链表P中的值。数据结构与算法分析(C语言)第3章,3.1和3.2题的代码实现。新手发文,有不足之处欢迎各位大佬指正。3.1的实现见printLinkList函数即可,该函数实现了链表的遍历。使用的编译器是VS 2022,使用时不要忘记在。,不然scanf无法运行。

2023-04-19 14:11:16 162 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除