这时候我想到了龟兔赛跑的故事 我们可以用一个快指针,一个慢指针来遍历链表 一个每次走2步,一个每次走1步,这样快指针每次就一定会比慢指针快一步
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
所谓的深拷贝就是重新向系统申请一个空间,然后用此空间对pcur中的值进行拷贝,地址不同
思路:借助数据结构——栈,遍历字符串,遇到左括号就入栈;遇到右括号就取栈顶元素,看是否匹配,如果成功匹配栈顶元素就出栈,继续遍历字符串;如果不匹配,就直接返回f...
比如说一家餐厅只有6个桌子,一次性只能招待6桌客人,如果某一天6桌全坐满了,现在又有来了一桌,如果这桌客人还想继续用餐,只能等其中的一桌客人离开,才能用餐。
思路:设置两个指针,一个快指针,一个慢指针,快指针每次走两步,慢指针每次走一步,比较来两个指针,如果相等,则说明有环;否则没有环。
思路1:遍历链表,求出链表的结点个数size,size/2为中间结点的个数,循环找中间结点,最后返回中间结点。
一个banned数组,它的内容表示arr数组中的位置,也就是满足所有的arr[banned[i]]=0,其中banned[i]!=p。
所谓子序列,指一个数组删掉一些数(也可以不删)之后,形成的新数组。例如 [1,5,3,7,3] 数组,其子序列有:[1,3,3]、[7] 等。但 [1,1]、[...
思路: 快指针负责 “筛选” 有效元素(不等于 val 的元素),慢指针负责 “记录” 有效元素的位置。当快指针找到有效元素时,就把它 “搬运” 到慢指针的位...
使用前提: 二分查找仅适用于 「有序数据」(如升序或降序排列的数组、列表等),这是其能高效缩窄范围的基础。
在链表数据结构中,"环"是一个经典且考察频率极高的话题。这类问题通常分为两个阶段:
地址:https://leetcode.cn/problems/balanced-binary-tree/description/
题目:给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则...
💡 如何使用本专栏: 1⃣ 先独立思考:尝试自己写出第一版代码(哪怕很烂)。 2⃣ 对比解法:看看我的思路和你的差异,吸收优化技巧。 3⃣ 举一反三:每...
🚀 你好,欢迎来到《编程闯关记》! 这里是算法与数据结构的实战基地,也是你从“暴力解法”到“最优解”的进化场。
美团 | 大模型后台开发 (已认证)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,...
k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。