
题山采玉
文章平均质量分 70
讲解一些题目
ggggg gl
一名正在努力学习c++的大学生!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
题山采玉:Day2
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!原创 2025-06-04 23:11:22 · 846 阅读 · 12 评论 -
题山采玉:Day3
此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。对x做减法,要么就减到9要么就不减,比如将4减到9要先减四次减到0然后还得减一次。选i位置 f[i][j][k] += f[i-1][j -1][k - i];f[i][j][k]表示,从前i个数里面挑j个数其中和恰好等于k的个数。不选i位置 f[i][j][k] += f[i-1][j][k];最后结果:f[2022][10][2022]初始化将f[0][0][0] = 1;填表顺序从上到下,从左到右。原创 2025-06-09 20:32:05 · 452 阅读 · 13 评论 -
题山采玉: Day1
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!从今天开始每天写四道题的题解,望大佬监督!原创 2025-06-03 23:13:07 · 698 阅读 · 14 评论 -
题山采玉:环形链表(I)(II)
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!题目来源我们先来解决第一个。原创 2025-01-15 00:13:38 · 467 阅读 · 0 评论 -
题山采玉:相交链表
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!题目很长,但总结也就几句话,给了两个链表,判断链表是否相交,并返回交点,有两种相交:1.2.这种情况是两个链表相同。原创 2025-01-15 00:11:10 · 333 阅读 · 0 评论 -
题山采玉:链表的中间结点
定义一个slow和fast都指向head,然后遍历链表,直到fast==NULL,然后fast=fast->next->next,slow = slow->next,我们发现,每次fast都比slow多移动1次,当fast移动到n个结点时,slow就移动到了n/2了,此时返回slow指向的结点就可以了。定义一个count来记录链表的结点数,通过遍历链表实现,然后再次遍历一般,找到第(count+1) / 2的那个结点,也就是头结点移动count次。此时fast为空,即fast ==NULL;原创 2025-01-14 09:08:02 · 291 阅读 · 0 评论 -
题山采玉:链表的回文结构
生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。给出了一个结点个数小于等于900的链表,判断它是否是回文结构,所谓的回文结构,就是将结构逆转后也相等,比如abccba这之类的。这个方法很难想到,但能实现问题,我们先找到链表的中间结点,在题山采玉专题里面有这样一道题:链表的中间结点来自力扣。链表判断是否为回文,我们不好判断,那我们将链表中的数据存储在数组之中那不就好办了吗?已经出了文章了,请多多支持。原创 2025-01-14 09:08:34 · 825 阅读 · 0 评论 -
题山采玉:移除链表元素
题目理解:嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!本题来自力扣题目理解:题目很简单,就是将链表中为值val的结点删除。思路讲解:1.原地修改我们在单链表中要删除元素,必须要找到前一个结点,不然没法进行删除操作,我们就可以定义一个指针cur来遍历链表,而prev来标记cur的前一个结点。原创 2025-01-13 14:58:33 · 526 阅读 · 0 评论 -
题山采玉:合并两个有序链表
生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?的方二相似,也可以用双指针来解决,cur1遍历list1,cur2遍历list2,phead,ptail表示新链表,谁小就尾插谁在新链表上。如果要在原链表中实现合并,不是不行,只是有点麻烦,这题和我们之前遇到的。给了俩个有序的链表,然后将他们合并,返回合并后的链表。原创 2025-01-13 15:24:20 · 281 阅读 · 0 评论 -
题山采玉: 反转链表
此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。然后我们将n2指向的结点的next指向n1指向的位置,然后n1 = n2,n2 = n3,n3 = n3->next,相当于整体向右移动。我们就发现,链表就神奇的逆序了,注意这里结束条件应该是n2等于0,然后n3这个当它已经为空的时候,就不能进行解引用操作了,要注意。我们定义三个指针,一个指向空,一个指向头结点,另一个指向头节点的下一个结点。给了一个链表,要求将它反转,并返回头结点。原创 2025-01-13 16:22:09 · 319 阅读 · 0 评论 -
题山采玉:合并两个有序数组
什么辅助数组啊,通俗一点将两个数组合并到这个新数组之中,而要实现这一切,不得不使用三指针,定义三个指针,分别指向三个数组的首元素,比较前两个数组的大小,谁小谁移动到新数组中,基本思路就是这样,大家注意看代码实现的时候有很多小细节,一个细节没注意到,可能就完蛋了,够你调试半天的了。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。题目很简单,有两个升序的数组,一个大小为m+ n但后n个不存储有效信息全是0,讲两个数组以升序合并到一起,并且合并到第一个数组。原创 2025-01-06 00:07:23 · 436 阅读 · 0 评论 -
题山采玉:(三指针)颜色分类
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!题目来源:力扣。原创 2025-01-05 17:48:50 · 672 阅读 · 0 评论 -
题山采玉:寄包柜
题目很长一段,超市有n个快递柜每个柜子又有不同数目的格子,每个格子里又要放东西,题目要求输入n和q,n表示快递柜子数,q表示接下来要进行的操作次数,q之后当输入的数字为1时,在输入i,j,k要求再第i个柜子里的第j个格子放入k个物品。如果创建二维数组a [ 1e5 ][ 1e5 ],内存太大,不能实现,但我们如果创建一个数组里面存储的是vector变长数组,当j大于vector里面的空间时我们可以使用resize进行扩容操作,相信大家知道这个之后就很容易实现了,快去试试吧。但里面还存在一些细节下文见。原创 2025-01-02 20:41:15 · 435 阅读 · 0 评论 -
题山采玉:询问学号
生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。有n个同学每个人都有属于自己的独特的学号,他们按照一定的顺序进教室。现在上课了老师有m次机会询问第i个进教室的人的学号是什么。输入n和m,还有n个同学的学号(依次进入的)输出m个人的学号。这是一个简单的问题可以用数组来实现,由于我们之前学习了vector,所以我们就使用vector来实现这个简单的问题,将m个同学依次的学号存储在vector中。原创 2025-01-02 19:48:53 · 172 阅读 · 0 评论 -
题山采玉:(双指针) 移动零
可以将数组分为这三部分,我们可以将cur先定义为-1,当nums[ i ] == 0的时候,就可以直接i++跳过把这个元素给0部分就可以了,而当nums[ i ]!= 0时,我们得将 nums[ i ]移动到cur的后面,而非0范围会变大,所以我们得将cur++,然后将nums[ cur ] 和nums[ i ]相交换就可以实现了。这种方法的思想也是很重要的,我也会实现一下。接下来就是重头戏了,双指针,这里的双指针并不是真正的指针,而是用变量来标记元素的下标,作用类似于指针,所以叫他指针。原创 2024-12-23 13:13:46 · 467 阅读 · 0 评论 -
题山采玉:(双指针)复写零
我们之前学习过的vector,可以使用里面的insert内置函数来解决,当元素为0时就在其后面插入一个零,但要求数组的元素个数不变,我们可以先记录没开始遍历时的元素个数,然后遍历数组之后进行尾删操作,即可。cur是不是改指向最后要修改的位置及看方法二中cur最后指向的位置。如果我们定义的两个指针都指向前面的元素从前往后去遍历,遇到0就改两个,你就会发现我们会把还未遍历的元素修改了所以我们得从后往前遍历。而cur指向的位置是0时,将dest的值改成0,移动一位,再改成0 然后curdest移动一位。原创 2024-12-23 15:23:33 · 999 阅读 · 0 评论 -
题山采玉:(双指针)快乐数
此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。10*81 = 810,假设我们再次进行811次操作,一定会出现重复的数字,因为一次操作一定会产生一次结果,并且他们产生的结果一定小于等于810.这道题,我们可以使用同样的思路,只不过当fast等于slow时判断重复的数字是不是1即可。假如这个数字最大值是int的最大值应该是10位数字我们假设是9999999999它进行一次操作后是。结果要么是1要么无限循环。我们换个思路,最后结果是1那也算是无限循环1,原创 2024-12-24 11:29:24 · 581 阅读 · 0 评论 -
题山采玉:(双指针)盛最多水的容器
此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。假如我们枚举成这样以后,左边这条线比右边这条长,如果将左边这条线向右移动,不仅宽度会变小,长度再大也依据右边这条短的为主,而且宽度也变小了,我们就没有枚举下来的必要了,这时我们可以试试将右边这条线向左移动,继续进行上述判断,直到两条线重合。题目给了关于线的长度的数组,任意选两个线,判断容器最大是多少,容积等于下标相减后乘以两条线最短的一条。这里等会就不编写代码了,判断一下时间复杂度很明显是O(n^2).原创 2024-12-24 12:40:12 · 622 阅读 · 1 评论 -
题山采玉:约瑟夫问题
接着,再越过k-1个人,并杀掉第k个人。我们要删除3号元素,但我们在3号元素停下时,很难找到前一个结点,要么再定义一个指针,或者使用双向链表,这些方法实现都很麻烦,不如我们再2号元素停下来,题目叫走3次,但我们只走2次就够了,但打印时不要忘记要通过下标打印下一个结点的数据。围成一圈很明显要使用循环的数据结构,我们目前学习的循环结构很容易想出来循环链表,循环链表的实现,有两种,一种静态一种动态的,但动态的复杂程度明显要大于静态的,运行时间也大大大于静态 的,所以我们这道题使用静态来实现是一种好方法。原创 2024-12-20 20:49:04 · 872 阅读 · 3 评论