自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Day 14】代码随想录训练营 | 二叉树02

注意:最小深度是根节点到叶子节点的最短距离!如果根节点左孩子为空,最小深度不是1!选择的遍历顺序:前序遍历,由于中左右的遍历顺序,便于处理。递归法解法如下,但是leetcode超时长。后来发现递归真的很简单,我写复杂了...之前用层序实现,现在可以使用递归尝试。之前写过层序实现,现在用递归实现下。迭代法仍然是层序简单些。

2024-07-03 20:08:39 476

原创 【Day 13】代码随想录训练营 | 二叉树01

前序:中左右 -> 中右左 -> 倒序变为左右中,此即为后序。

2024-07-03 11:15:10 466

原创 【Day 12】代码随想录训练营 | 栈与队列02

该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。滑动窗口的位置 最大值。返回一个表示表达式值的整数。滑动窗口每次只向右移动一位。

2024-06-29 18:23:32 800

原创 【Day 9】代码随想录训练营 | 栈与队列01

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(请你仅使用两个栈实现先入先出队列。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。会选择两个相邻且相同的字母,并删除它们。你能否仅用一个队列来实现栈。

2024-06-29 15:31:49 1053

原创 【Day 8】代码随想录训练营 | 字符串02

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。第二行为字符串 s,代表需要旋转的字符串。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。

2024-06-29 11:16:45 460

原创 【Day 7】代码随想录训练营 | 字符串01

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须、使用 O(1) 的额外空间解决这一问题。

2024-06-13 22:47:13 532

原创 【Day 6】代码随想录训练营 | 哈希表02

给你四个整数数组nums1nums2nums3和nums4,数组长度都是n,请你计算有多少个元组2两个元组如下:1。

2024-06-13 21:36:07 1039

原创 【Day 5】代码随想录训练营 | 哈希表01

给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。sttrues= "rat",t= "car"falset如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

2024-06-12 10:54:44 413

原创 【Day 4】代码随想录训练营 | 链表02

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。[2,1,4,3]head = [][]head = [1][1][0, 100]方法:双指针法。使用双链表节点,pre和cur,与之前方法相同。

2024-06-08 19:13:24 858

原创 【Day 3】代码随想录训练营 | 链表01

给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。

2024-06-08 09:54:40 346

原创 【Day 2】代码随想录训练营 | 数组02

给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的02子数组[4,3]是该条件下的长度最小的子数组。10O(n)本质:将双层嵌套循环的暴力解法更改为滑动窗口。暴力解法:两层for循环,先后移动起始点和终止点滑动窗口:一层for循环,遍历终止点,视情况一点点移动起始点。

2024-06-06 16:19:18 322

原创 【Day 1】代码随想录训练营 | 数组01

给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。49 出现在nums中并且下标为 4-12 不存在 nums中因此返回 -1numsn[1, 10000]解题思路:遇到有序且无重复的序列,查找值的下标可用二分法。注意要点:1. 下标截止条件:while,对于左闭右开区间,left

2024-06-05 19:51:41 937 1

原创 代码随想录算法训练day9 | KMP算法

核心:由于任意字串,最长公共前后缀的长度小于自身长度。所以,如果文本串由某个单元重复构成,这个单元即为原文本串去除最长公共前后缀后的剩余部分。如果s内部有重复,那么在s + s的中间部分,一定还可以找到一个s,当然,要注意去除首尾元素,否则找到的就是原来凭借的那两个字符串。KMP算法:核心在于从文本串中寻找模式串首次出现的位置,文本串仅需遍历一次,避免暴力算法O(n*m)的复杂度。求解模式串的next数组,相当于找每个子串所对应的最长公共前后缀的长度。一直运用已知的信息去推导后续子字串的最长前后缀的长度。

2023-04-13 19:56:41 1101

原创 代码随想录算法训练day8 | 字符串

技巧:不要使用额外空间,首先利用resize()函数将空间扩大到最终空间,然后从右往左移动指针,知道原指针和新指针相遇即可。注意:从后向前的原因是,只用原string即可,不用担心数据覆盖的问题。思路:利用双指针去重后,先将整体字符串反转,然后将内部各个单词反转。注意:reverse()函数翻转的范围是左闭右开的。有时候双指针的想法真的能够减少很多代码量。方法很巧妙,将双指针的方法做到了极致。保证了空间复杂度是O(1)的.

2023-04-12 20:42:01 1194

原创 代码随想录算法训练day7 | unordered_map,双指针收缩

2.关于左右双指针,永远和下一个作比较,并且比较完重复性后,应当向内收缩。不要和上一个作比较,否则最开始应当多一步l--,r++,收缩后再和上一个指针作比较。1.最开始跳过nums[i]时,永远和前一个已经遍历的数作比较,否则会出现问题。如:-1,-1,2。第二步:确定left和right指针,分别向中间移动,注意去重。1.target可能是负数,所以不可以根据nums[i]>target就直接返回ans。2.剪枝的时候均用break,不可以直接返回ans,否则可能会跳过某些遍历。反之,left++。

2023-04-11 23:09:20 1369

原创 代码随想录算法训练day6 | 哈希表

巧妙运用数组。

2023-04-11 16:59:12 1019

原创 代码随想录算法训练day4 | 链表

相当考验数学功底,快指针速度设为2,慢指针速度设为1,则可以保证二者必然会相遇。因为速度差是1,其次,相遇点的位置和头节点到环入口的距离,在相差n圈环长度的意义下是相等的。fast先走n步,再让fast和slow一起移动。则当fast指向末尾时,slow指向的即为倒数第n个元素。本质:相交节点后的长度一定是相同的,所以只需要让他们从尾部对齐,从前向后遍历找相同节点即可。而为了对该节点进行删除操作,所以本质上是找到倒数第n+1个节点,所以fast先走n+1步。虚拟头节点的本质意义在于减少了特殊情况的处理。

2023-04-09 01:57:00 1771 1

原创 代码随想录算法训练day3 | 链表(删除、创建)

建立虚拟头节点,注意不要忘记释放内存,如果建立的是指针,应当使用->

2023-04-07 23:34:23 1847 1

原创 代码随想录算法训练day2 | 数组(双指针法、滑动数组)

遍历终止位置,滑动起始位置来缩小窗口。

2023-04-07 00:23:52 1741 1

原创 代码随想录算法训练day1 | 数组基础 704 27

#方法二:while解决(左闭右闭举例)时间复杂度为O(logn)#27 移除元素(暴力法)

2023-04-05 02:30:48 2240 3

空空如也

空空如也

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

TA关注的人

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