
随想每日两题
文章平均质量分 68
Sessy
高筑墙 广积粮
展开
-
【随想】每日两题Day.22
当父节点被remove时,孩子结点就加入队列,直到size为0时,就是这一层的结点,加入到二维数组。再进行下一层的遍历。(即逐层地,从左到右访问所有节点)。会了这一种思路就可以一打十啦(已完成)。层序遍历利用队列的长度快照为每层的长度。原创 2023-12-24 11:25:56 · 475 阅读 · 0 评论 -
【随想】每日两题Day.21
我们利用入栈结点,然后出栈时将数值存入结果数组,然后要入栈此节点的孩子结点。我们用栈存储我们遍历过的结点,用来我们回溯,当cur一直向左直到为null时,我们回溯。所以将左 右 入栈的顺序颠倒后,再将结果数组reverse,就完成了后序遍历的迭代。中序遍历的迭代与前序后序不同,因为他是左 根 右 ,所以不是遍历到就存储的。将cur指向出栈的结点,然后加入到结果数组,再将cur指向cur.right。由于栈是先进后出,所以我们要先入栈右结点,后入栈左节点。根据前序遍历的特点:根 左 右。原创 2023-12-20 13:22:38 · 599 阅读 · 0 评论 -
【随想】每日两题Day.20(实则一题)
由于是存前K个高频元素,我们先用Map存元素与出现次数,然后用优先级队列(PriorityQueue)来存储二元组(元素,次数),实际底层是大顶堆,然后取出前K个元素就好啦。,请你返回其中出现频率前。你所设计算法的时间复杂度。原创 2023-12-19 19:57:35 · 449 阅读 · 0 评论 -
【随想】每日两题Day.19
此题思路为,遍历字符串数组,遇到数字就入栈,遇到符号就出栈两个符号(注意num1 num2顺序),然后进行运算后再将结果压入栈,最后栈中的唯一元素即为结果。当队列add时,只要在val前 且比val小的 都poll掉,因为维护他们没有意义了,只要有val在窗口的最大值都是val。当队列poll时,只有当val == myQueue.peek() 时才poll,因为其他元素都在add时删除了。的滑动窗口从数组的最左侧移动到数组的最右侧。返回一个表示表达式值的整数。队列的peek(),永远都是窗口的最大值。原创 2023-12-05 15:14:02 · 992 阅读 · 0 评论 -
【随想】每日两题Day.18
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。我们利用栈来判断:当遇到左括号,就像栈中加入相应的右括号。当遇到右括号时,就弹出栈顶元素,如果类型不相同则false。我们可以用栈来实现,但是最后的结果是栈中元素的倒序,所以我们可以直接用一个字符串来模拟栈的过程。会选择两个相邻且相同的字母,并删除它们。,判断字符串是否有效。原创 2023-12-04 12:20:37 · 478 阅读 · 0 评论 -
【随想】每日两题Day.17
此题我犯了一个天大的错误,竟然在构造方法里声明stack1和stack2。在方法中的局部变量怎么能给其他方法提供使用呢!应该在类中声明成员变量,然后在构造方法初始化!使用一个队列实现栈,就是每次push时将队列中所有元素,都remove再add 使得添加的元素为首元素。以此类推所有的元素都是倒序排列的 也就是栈!就是两个队列哪个空就把元素都放到空的那个 然后知道走到最后一个元素。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(请你仅使用两个栈实现先入先出队列。原创 2023-11-20 12:53:17 · 137 阅读 · 0 评论 -
【随想】每日两题Day.16(实则一题)
你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。你不需要考虑数组中超出新长度后面的元素。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?不要使用额外的数组空间,你必须仅使用。的元素,并返回移除后数组的新长度。函数应该返回新的长度。原创 2023-11-16 12:13:50 · 118 阅读 · 0 评论 -
【随想】每日两题Day.15
所以用getNext()函数求最长公共前后缀,若为0直接返回false,若不为0 进行整除操作。此思路为,若字符串s是由子串重复构成的,那么s + s 后 去掉首尾字符,其中肯定还包含子串s。此思路为,如果字符串s是由子串重复构成,那么(s长度) 一定可以整除 (s-最长公共前后缀)"leeto" 没有在 "leetcode" 中出现,所以返回 -1。字符串的第一个匹配项的下标(下标从 0 开始)。第一个匹配项的下标是 0 ,所以返回 0。"sad" 在下标 0 和 6 处匹配。给定一个非空的字符串。原创 2023-11-15 13:12:54 · 145 阅读 · 1 评论 -
【随想】每日两题Day.14
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。利用 StringBuilder 类中的 setCharAt(下标,新字符) 方法来做字符串翻转。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。此方法与上题进阶方法一致,先翻转整个字符串,再翻转前n个字符,后n个字符。进阶方法:先翻转整体字符串,再翻转每一个单词。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。原创 2023-11-02 15:38:42 · 100 阅读 · 0 评论 -
【随想】每日两题Day.13
此题也利用了上一题的字符串翻转,也可以用库函数。值得注意的是最后返回是new String(c);编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。这个题很简单,要学的就是 ^= 操作交换数据,也可以用tmp交换。、使用 O(1) 的额外空间解决这一问题。不要给另外的数组分配额外的空间,你必须。,从字符串开头算起,每计数至。原创 2023-10-18 19:46:14 · 141 阅读 · 0 评论 -
【随想】每日两题Day.12
这个题和三数之和思路一样,只不过多一层循环,并且边界条件和剪枝操作改一下即可。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。此题难度不小,在日后复习要多敲代码反复品味。注意,输出的顺序和三元组的顺序并不重要。请你找出并返回满足下述全部条件且。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2023-10-09 21:18:08 · 190 阅读 · 0 评论 -
【随想】每日两题Day.11
这道题的输入很关键,要用set来接收不知长度的输入,然后怎么处理的输入很关键。这个题并不难,要掌握的是字符串的 toCharArray() 方法,还有很简便的写法。【评分标准】该题要求输出差运算后集合中的元素,结果完全正确得20分,每个测试点4分。输出元素的顺序与原有集合A输入的顺序一致。【样例说明】从标准输入接收集合中的自然数元素,输出集合A、B的差集。输入两个集合A、B,每个集合中元素都是自然数。从标准输入接收集合中的自然数元素,以空格分隔。集合A、B的差集,由所有属于A但不属于B的元素构成。原创 2023-10-08 21:01:14 · 327 阅读 · 0 评论 -
【随想】每日两题Day.10(实则一题)
这道题如果四个数组一起计算,那样的时间复杂度会达到n的4次方。所以我们考虑 muns1 和 muns2 先算,然后再通过0 - nums3 和 nums4 数组相加来算出target ,去查找1 和 2 是否有此值。我们意识到想要知道一个集合中是否出现过某一个元素,我们首选哈希表。所以经思考,我们 key 要存target ,value 要存 出现过的次数,所以我们用 HashMap 存储。通过这道题发现了很多自己基础的问题,Map的创建不熟悉,Map的基本方法不熟悉,for循环的简写不熟悉。原创 2023-10-07 12:23:22 · 203 阅读 · 0 评论 -
【随想】每日两题Day.8
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。原创 2023-09-21 15:04:46 · 450 阅读 · 0 评论 -
【随想】每日两题Day.7
题目:面试题 02.07.链表相交 题目:142.环形列表Ⅱ原创 2023-09-19 10:03:00 · 99 阅读 · 0 评论 -
【随想】每日两题Day.6
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。原创 2023-09-14 14:28:44 · 119 阅读 · 0 评论 -
【随想】每日两题Day.5 (实则一题)
你可以选择使用单链表或者双链表,设计并实现自己的链表。val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果是双向链表,则还需要属性prev以指示链表中的上一个节点。假设链表中的所有节点下标从开始。实现index-1valvalvalindexindexindexindex// 链表变为 1->2->3// 返回 2// 现在,链表变为 1->3// 返回 3。原创 2023-09-11 21:07:54 · 252 阅读 · 0 评论 -
【随想】每日两题Day.4
给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。原创 2023-09-11 01:25:18 · 252 阅读 · 0 评论 -
【随想】每日两题Day.3(实则一题)
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。原创 2023-09-09 17:52:10 · 423 阅读 · 0 评论 -
【随想】每日两题Day.2
这道题目采用的是滑动窗口法,用right来控制终止位置,当sum>=target时(一点要注意包括等于!然后依次窗口向右走,不断更新数组的长度。此题可以暴力排序,但是追求速率将时间复杂度降低到O(n),采用双指针方法。下标left和right的值,哪个大先存哪个,从后往前存数据。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。个正整数的数组和一个正整数。组成的新数组,要求也按。原创 2023-09-08 13:25:27 · 155 阅读 · 0 评论 -
【随想】每日两题Day.1
给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。numstarget= 949 出现在nums中并且下标为 4numstarget= 2-12 不存在nums中因此返回 -1numsn[1, 10000]nums。原创 2023-09-07 11:14:43 · 205 阅读 · 0 评论