![](https://img-blog.csdnimg.cn/d5d02b64e13843f6bd1a1c7eb8dd55e8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
字节跳动 10 日心动计划
文章平均质量分 81
记录该计划下的刷题
Iareges
这个作者很懒,什么都没留下…
展开
-
【2023】字节跳动 10 日心动计划——导航
关于该专题的刷题已整理完毕,以下是内容导航。原创 2023-08-18 22:11:00 · 289 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第十关
AVL树的定义是递归的,即一个树是AVL树当且仅当根节点的左右子树都是AVL树且两者高度差不超过1。注意细节,路径必须是从根节点到叶子结点。原创 2023-08-18 19:58:07 · 224 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第九关
题目中规定了同一个字符不能出现在多个区间中,因此对于一个字符而言,如果它包含于某个区间,那么这个区间应当包含所有这样的字符。我们依次枚举该区间的每一个字符,并用字符最后一次出现的下标来更新区间的右端点,这样一来,我们就可以得到不可分割的第一个区间。回到本题,为了避免重复,我们同样可以先对数组排个序以确保相同的数字相邻,然后枚举每个位置,对于每个位置,枚举这个位置上对应的数可能出现的次数,即。回顾全排列 II,我们的枚举思路和全排列 I相同,但是为了避免重复,我们固定了相同数字的相对位置。原创 2023-08-13 16:00:17 · 220 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第八关
式在形式上是完全一致的,无非是嵌套的括号数量不一致。代表Python中的字符串乘法)就达到了“去括号”的目的。将链表从中间一分为二,再将后半部分翻转,最后对两个链表进行二路归并即可。那么最内层的括号中一定只含有字母,由于左括号左边一定紧跟数字,所以。由于是循环数组,我们可以先将两个原数组拼接在一起,然后再应用单调栈。的时候,就可以继续执行同样的操作来达到“去括号”的目的。一定是最内层的括号,此时我们需要去掉最内层的括号,让。我们从左向右扫描整个字符串,遇到的第一个。为0,从左向右扫描时不断累加,遇到。原创 2023-08-13 16:00:03 · 232 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第七关
因为对于全排列问题,当前位置的所有状态和数组长度有关,所以我们只能通过for循环来实现。而对于子集问题,当前位置的状态只有两种,因此不必使用for循环,直接展开即可。类似地,对于子集问题,我们同样要遍历当前位置的所有状态,即选当前位置的数或者不选。个位置(当前位置)上的所有状态(假设前。的递归搜索树,我们要在dfs函数里。我们可以举一反三,生成一个长度为。对于递归,则是dfs暴搜一下。轮的时候,我们会漏掉最终的。对于迭代,假设序列的长度为。,我们可以用一串长度为。串,即每个位置要么是。原创 2023-08-06 14:43:58 · 458 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第六关
注意到数组是有序的,因此我们可以用二分去处理,时间复杂度可以降至。,前者不满足这个条件,后者满足这个条件,所以我们可以套用。既然要用二分,那我们就需要找到一个性质能够将区间。是偶数,且数组的长度是奇数,不妨设为。的左右两边各有偶数个元素,从而。不妨设只出现一次的元素的下标是。是否相等,如果相等,则。是否相等,如果相等,则。,从而我们只需要判断。原创 2023-08-05 21:01:11 · 912 阅读 · 1 评论 -
【2023】字节跳动 10 日心动计划——第五关
求有多少个和为K的子数组即求有多少个区间和等于K(注意子数组和子序列不一样,子序列可以是不连续的),而提到区间和就应当想到前缀和。在输入序列中不一定相邻,所以我们要在一开始对输入序列排个序,这样一来,相同的数字就会相邻。字符串的全排列和数字序列的全排列本质是相同的,我们先回顾一下两道数字全排列的题目。在dfs的过程中,我们是从左往右依次填入数字的,在填某一个位置的时候,能够填。本题是典型的dfs,但有一个细节就是,返回的结果不能包含重复的元素。,为方便观察,我们给相同的数字赋予不同的下标,即。原创 2023-08-05 17:06:02 · 400 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第四关
天卖出股票可获得最大利润,那么买入股票必然是在前。更进一步,买入股票应当是第。家能够获得的最大金额,那么我们可以按照第。此外,还可以使用滚动数组将空间复杂度优化至。间房屋,那么剩下可以偷窃的范围就是。间房屋,那么剩下可以偷窃的范围就是。天卖出股票能够获得的最大利润。取两者中的最大值就是本题答案。这说明我们可以维护一个。先回顾第一代的打家劫舍。原创 2023-08-04 23:21:06 · 237 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第三关
具体来讲,我们始终保持栈底元素为当前已经遍历过的元素中「最后一个没有被匹配的右括号的下标」,这样的做法主要是考虑了边界条件的处理,栈里其他元素维护左括号的下标。之前我们是让两个指针从中间往两边移动,这次我们让两个指针从两边往中间移动,所以填答案的时候需要倒着填。判断栈是否为空,如果栈为空,说明当前的右括号为没有被匹配的右括号,将其压入栈中,否则,更新答案。注意,任何时刻,只有栈底元素是右括号的下标,其他元素都是左括号的下标!方法一:找到正负元素的分界线,然后对正、负数组进行二路归并。,则将其下标压入栈中;原创 2023-08-04 20:59:12 · 545 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第二关
的形式,但其中有若干个位置上的数是错误的,每一个错误的位置就代表了一个缺失的正数。,由此可知缺失的数是2。恢复后,数组应当具有。原创 2023-07-21 23:04:14 · 259 阅读 · 0 评论 -
【2023】字节跳动 10 日心动计划——第一关
看到前缀应当想到,我们可以将dictionary中的每个单词都插入到前缀树中,然后扫描sentence中的每个单词看是否需要进行替换。原创 2023-07-18 10:14:47 · 400 阅读 · 0 评论