![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
日常算法练习
学习超级不自觉选手两天刷一道算法题不过分吧?
M.S.WangZY
这个作者很懒,什么都没留下…
展开
-
02.07.链表相交
可以设置两个节点分别指向两个链表的头节点,由于两个链表的长度可能不一样,怎么才能保证它们同时到达相交节点呢?第一趟一次从头遍历,必然有一个指针先到相交节点,另一个指针后到,那么就开始第二趟,第二趟把指针换到从另一个链表的头节点开始,这样第二趟两个链表就能同时到达相交节点了,即使没有相交节点,两个指针都为空时也能退出循环。看了好多题解,发现哪一个是相交节点,是内定的,这个就不用纠结了,只用管代码逻辑就行。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。原创 2023-08-30 11:05:50 · 50 阅读 · 0 评论 -
19.删除链表的倒数第N个节点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。原创 2023-08-29 09:56:35 · 43 阅读 · 0 评论 -
24.两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。用中间节点来两两交换,需要声明多个中间节点,有一点绕,在本子上画一下就清楚一点。原创 2023-08-28 15:34:43 · 35 阅读 · 0 评论 -
206.反转链表
竟然已经有半个月没有更新了,但我没有偷懒!上个星期都在开发功能,没时间练算法题,今天功能交付了,恢复算法练习~原创 2023-08-24 10:28:03 · 22 阅读 · 0 评论 -
203.移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。遍历链表,当前节点的下一节点等于目标值时,就把当前节点的next指针指向下下个节点,从而打到删除下一个节点的效果。原创 2023-08-09 15:41:42 · 26 阅读 · 0 评论 -
59.螺旋矩阵
因此可以定义一个代表方向的二维数组direction[[0,1],[1,0],[0,-1],[-1,0]],每向数组中填入一个数后,就判断一次是否到达边界,如果到达边界,就转换一次方向。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。右:从1到3,下:从3到5,左:从5到7,上:从7到8,依次类推。右方向的行数不变,列数每次加1;下方向的列数不变,行数每次加1;左方向的行数不变,列数每次减1;上方向的列数不变,行数每次减1。原创 2023-08-07 10:11:01 · 28 阅读 · 0 评论 -
209.长度最小的子数组
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。给定一个含有 n 个正整数的数组和一个正整数 target。感觉双指针的方式可以解决数组中很多算法问题~多练练。原创 2023-08-04 15:10:49 · 30 阅读 · 0 评论 -
977.有序数组的平方
双指针,一个指向数组开头的数,一个指向数组最后一个数,每次比较两个指针指向的数的平方,将较大的数放入新数组最后一位,较大数对应的指针右移(左移)一位。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。原创 2023-08-03 10:08:18 · 26 阅读 · 0 评论 -
27.移除元素
左指针指向数组第一个元素,右指针指向数组最后一个元素,判断如果左指针指向的元素等于val,就把右指针指向的元素复制到左指针处,右指针左移一位,否则左指针就右移一位。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。既然要原地删除,那就用目标元素后面的元素来覆盖它,不就原地删除了吗,上代码。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。原创 2023-08-02 10:16:24 · 30 阅读 · 1 评论 -
1544整理字符串
用栈来解决,遍历字符串,取每一个元素进行入栈操作,每一次入栈前先判断当前元素是否栈顶元素的大写或小写,是的话就把栈顶元素出栈,否则就把当前元素入栈。请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好为止。题目保证在给出的约束条件下,测试样例对应的答案是唯一的。若 s[i] 是小写字符,则 s[i+1] 不可以是相同的大写字符。若 s[i] 是大写字符,则 s[i+1] 不可以是相同的小写字符。注意:空字符串也属于整理好的字符串,尽管其中没有任何字符。原创 2023-07-24 11:30:16 · 37 阅读 · 0 评论 -
和为s的连续正数序列
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。原创 2023-07-18 10:52:21 · 33 阅读 · 0 评论 -
637二叉树的层平均值
二叉树一来就是一个一脸懵逼,数据结构没咋认真学过,完全不太会。原创 2023-07-14 17:25:52 · 29 阅读 · 0 评论 -
2190数组中紧跟 key 之后出现最频繁的数字
随机一道简单题,但一开始竟然理解错了题意。。。上题:给你一个下表从0开始的整数数组nums,同时给定一个整数key,key在nums中出现过。统计在nums数组中紧跟着key后面出现的不同整数target的出现次数,返回出现次数最多的target一开始的想法,先找到key第一次出现的位置,从这个位置开始遍历,找到后面出现次数最多的数字返回。但错了!忘记了“紧跟着key”~原创 2023-07-12 19:11:57 · 33 阅读 · 0 评论