自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录 | 单调栈 - 接雨水 + 柱状图最大的矩形

双指针法:比起暴力解法的核心在于通过创建两个指针数组,记录每个索引位置上第一个更小或更大的元素的索引。实现过程中,不是逐个遍历,而是通过“状态转移”,即查询当前索引的左右元素的第一个更小或更大的元素的索引,并更新当前索引的位置,直到遍历到左右端或找到目标元素。以接雨水(以左边为栈底,右边为栈顶)为例。

2024-05-23 16:45:28 307 1

原创 笔试 | 一笔画问题之一步走完所有格点

给一个n*m的点矩阵,如何不重复的一步走完所有点。输入n, m 代表矩阵的行和宽,n和m不同时为1(1

2024-05-21 10:03:34 194

原创 代码随想录 | 组合总和II-leetcode 40

这道题有两个条件需要注意,一是输入数据中有重复数字,二是结果的组合不能重复。也就是说组合中的数字可能是重复的,但是组合与组合之间是不能重复的。

2024-05-16 19:31:48 421

原创 代码随想录|路径总和-leetcode 112

这道题考查的是对回溯的掌握。由于我们找到合法的path后就应该及时返回结果,否则继续进行遍历。在考虑有返回值的情况下,要思考清楚什么情况下返回什么。还有另一种写法,但是要遍历整棵树。这也是基本的回溯模版。

2024-05-03 20:02:46 132

原创 笔试|用字典解决“最长重复间隔子字符串”

一个字符串中,字符a和h间隔出现为合法的子字符串。比如a,h,ah,ha,aha,haha都是合法的。但是aa,hh,abcd都不是合法的子字符串。那么给出一个字符串,求最长合法的子字符串的长度。符合条件则移动右指针,计算左右指针区间长度。第二行为字符串s,s由字符组成。第一行为n,表示字符串的长度;最长子字符串长度l。

2024-05-03 13:40:26 110

原创 代码随想录|递归法二叉树高度和深度

二叉树深度/高度 递归 解题模版总结

2024-04-30 21:29:24 299 2

原创 面试|面试手撕合集

题目中明确提出了对字符的检查顺序,所以应该认为在丢弃完空格后,就检查符号,检查完符号后,立马检查数字,其他情况都是不符合的。可以用双指针做,时间复杂度和空间复杂度应该都很低。还可以建立一个新的vector,空间复杂度高。这道题考查的是对题意的理解和代码风格。也可以直接用erase,但是要注意。删除数组中三的倍数。

2024-04-29 22:21:09 99

原创 代码星球 | ACM模式输入输出练习 (待补充)

在很多大厂的笔试中,都不是使用核心代码模式。因此需要单独的去锻炼代码的输入输出的写法。本篇总结了在练习输入输出中遇到的一些心得,希望对大家刷题有用。

2024-04-09 13:22:03 215

原创 论文|Elsevier 期刊格式(待补充)

摘要:Elsevier手稿格式 Elsevier manuscript format

2024-04-09 13:17:41 522

原创 笔试 | LX春招数据挖掘岗笔试题目及解答(一)

输出一行n个整数,表示m次连续操作之后的序列。注意输出时序列中两个数之间输出一个空格,行末不要 输出多余的空格。第三行m个形如ka和kb的字符串,每两个字符串之间有一个空格,行末无空格,按输入顺序表示一次连续的操作。对于全部数据,1

2024-04-07 20:48:22 364

原创 C++ | unordered_map 初始化

计算元素出现的频率使用unordered_map

2024-03-31 19:39:25 396 1

原创 代码星球 | 数组-总结

这类题目的重点是理解对空间复杂度的要求,如果没有要求,可以开辟新的空间进行按顺序填充满足要求的数字。否则,则需要覆盖原有的地址。(1)定义:数组是存放在连续内存空间相同数据类型的集合。(3)即数组元素的增添删除需要移动其他元素的地址。(2)元素顺序:如有序数组的平方排序/删除元素。,因此能够按顺序填充或覆盖。(1)区间:如模拟/二分法/滑动窗口。(2)即数组内存空间的地址是连续的。,确定好区间的范围,以及变化的条件。(4)数组的下标从0开始。2. 数组类题目总结。

2024-03-01 13:51:13 377

原创 代码星球|数组-有序数组的平方-leetcode 977

(2)对于一个有序的数组,天然的具有大小顺序。平方后的数组两端是最大的,中间某位置是最小的。这种情况下,可以考虑使用双指针指向两端,比较大小。用第三个指针指向新的空间,将最大的值依次从尾至头填充。因为该题目没有对空间复杂度的要求,因此可以使用新的空间存放排序后的数组。(1)直觉来说,应该将数组进行平方,再快速排序。这种解法的时间复杂度是。组成的新数组,要求也按。

2024-02-29 19:32:04 182

原创 代码星球|数组-滑动窗口-leetcode 209

也可以固定子数组的左区间,增加子数组长度,直到满足总和大于target,记录此时的长度。需要更新左区间,重复以上操作,比较新的长度与记录的长度,以此更新最小值。任何一个子数组都可以表示为左右端点,只要左右端点内的数值满足条件,就是正确的子数组。遍历完数组时,此时最新的长度,就是最小长度。因此,在开始记录的时候,不论最小值为多少,都能够成功的记录。如果此时最小值初始化为0,任何大于等于1的最小值都无法被记录,这是违背原意的。同样的道理,如果是更新最大值,最大值应该更新为一个比可行解下限更小的值。

2024-02-29 15:11:10 202

原创 代码星球|数组-螺旋矩阵II-leetcode 59

一般只需要两个变量,左区间+长度,或者,左区间+右区间,就能体现出变化。同时,如果区间的左右端会有规律的变化,比如长度会减少,起点会递增,正如该题所展示的。2. 这道题中需要注意的一个规律是,当n为奇数时,最后的一层一定只有一个块,这时无法分成四个数组去赋值。但其实,以上两个过程可以合并,因为可以在填充数字的过程中,计算下一个要填充的数值。不需要先创建一个数组,再将数组的数字按规律填充。再说填充过程的分解:螺旋形,可以看作是四个数组的结合,四个左闭右开的区间的集合,每个转角都是下一个数组的开始。

2024-02-29 00:59:52 551

原创 代码星球|数组-移除元素-leetcode 27

(3)你不需要考虑数组中超出新长度后面的元素:这暗示着新长度后的数据不用处理。并且,必须将新数组放在nums的左边,因为答案的输出是与返回值(nums的长度)相关的。3. for循环语句块中的变量不能够作为函数的全局变量输出或使用!(2)元素的顺序可以改变:意味着可以正向覆盖,也可以逆向覆盖。修改输入数组:这意味不能够开辟新的空间,即将原数组拷贝。(2)考虑时间复杂度更低的方法:快慢指针。(1)最直接的方法是:for循环嵌套。(3)进一步优化:左右指针。(3)双指针之左右指针。,因此规避对边界的考虑。

2024-02-25 19:47:08 397

原创 代码星球|数组-二分法-leetcode 34

(2)这是一个非递减的数组:可能有多于1个的目标值连续出现。当找到了一个目标之后,连续目标值的首尾可以通过排除目标值的方法来搜索。找到目标数组的开始/结束位置:翻译过来就是找到一个值,既要等于目标值,左边/右边不是目标值。:这是一道需要用二分法解决的问题。(4)没有目标值的情况:直接输出。

2024-02-25 19:21:23 215

原创 代码星球|数组-二分法-leetcode 704

使用while循环,这是是一个排除不符合元素,缩小区间的过程,直到所有元素都被排除。根据target与中值大小的比较,若相等,则跳出循环。

2024-02-22 14:39:16 282

LaTeX instruction

LaTeX instruction

2024-04-09

空空如也

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

TA关注的人

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