Leetcode:合并两个有序链表 2024-06-08 算法, leetcode, 职场和发展, windows 36人 已看 (其中 n 和 m 分别为两个链表的长度。递归调用 mergeTwoLists 函数时需要消耗栈空间,栈空间的大小取决于递归调用的深度。结束递归调用时 mergeTwoLists 函数最多调用 n+m 次)合并(l1,l2)等价于解决 l1->next = mergeTwoLists(l1->next, l2) 以及l2->next = mergeTwoLists(l1, l2->next)的子问题。
【力扣】矩阵中的最长递增路径 2024-06-04 算法, 矩阵, 线性代数, leetcode, 职场和发展 50人 已看 1、先求出以矩阵中的每个单元格为起点的最长递增路径题目中说,对于每个单元格,你可以往上,下,左,右四个方向移动。那么以一个单元格为起点的最长递增路径就是:从该单元格往上,下,左,右四个方向走的四条递增路径中的最大值(即最长的一条递增路径)。2、在求出的所有最长递增路径中找最大值因为题目是求矩阵中的最长递增路径,所以要在求出的所有最长递增路径中找最大值。3、使用“记忆化搜索”(递归+“备忘录” )来解决该题。
定个小目标之每天刷LeetCode热题(12) 2024-06-07 算法, leetcode, 职场和发展 32人 已看 所以我们只需要让数组里的所有元素进行异或运算得到的结果就是那个只出现一次的数字,代码如下所示。1、任何数异或 0 结果仍然是原来的数,即 a⊕0=a。2、任何数和其自身做异或运算,结果是 0。
LeetCode 两数之和 + 三数之和 2024-06-06 算法, leetcode, 职场和发展 35人 已看 思路:一个Map,key是数值,value是该数值对应的下标,遍历的时候判断一下当前数组下标对应的值在map里有没有可组合成target的(具体体现为在map里找target-nums【i】),如果有,直接返回,没有的话就加进去,继续找。思路:严格上来说算三个指针,一个i是维护当前遍历到的数字下标,之后的l和r指针是从i所处位置开始,在i + 1 到len - 1这个区间中寻找nums[i]的相反数。需要掌握的方法:map的get和containsKey。
[补题记录]Leetcode 209.长度最小的子数组 2024-06-04 算法, leetcode, 职场和发展, 数据结构 50人 已看 题目要求维护最小的长度,因此我们希望:当条件不满足时,不断扩大子数组长度;)时,就可以尝试缩短子数组长度,并进行一次答案的维护。这显然是一个双指针的解法。,要求算出数组中最小长度的连续子数组,数组元素的和。给定一个整数数组和一个整数。
Leetcode:盛最多水的容器 2024-06-03 算法, 容器, leetcode, 职场和发展 35人 已看 两个指针指向的数字中较小值∗指针之间的距离。循环列举容器的大小,并留下最大的那个容器。这种写法会超出时间限制,无法通过。
力扣每日一题 6/7 2024-06-07 算法, leetcode, 职场和发展 35人 已看 这道题主要还是遍历+模拟+数组,题目要求前两个数字的和相等,那我们就可以储存刚开始的前两个值,去依次遍历后面的两个的值,然后求和判等,只要有不等的情况直接跳出循环,return结果即可。需要注意的是,这里循环开始前需要特殊情况判别,当长度等于1的时候直接return 0,等于2的时候直接return 1 ,否则的话进行下面的循环。下面是具体代码实现:
leetcode数组和字符串笔记 2024-05-30 算法, 笔记, leetcode, 职场和发展 35人 已看 删除元素与插入元素的操作类似,当我们删除掉数组中的某个元素后,数组中会留下 空缺 的位置,而数组中的元素在内存中是连续的,这就使得后面的元素需对该位置进行 填补 操作。当数组的长度为 n 时,最坏情况下,我们删除第一个元素,共需要的步骤数为 1 + (n - 1) = n 步,其中,1 为删除操作,n - 1 为移动其余元素的步骤数。最坏情况下,搜索的元素为 "R",或者数组中不包含目标元素时,我们需要查找 n 次,n 为数组的长度,因此查找元素的时间复杂度为 O(N),N为数组的长度。
LeetCode-2246. 相邻字符不同的最长路径【树 深度优先搜索 图 拓扑排序 数组 字符串】 2024-06-05 算法, leetcode, 职场和发展 34人 已看 给你一棵 树(即一个连通、无向、无环图),根节点是节点 0 ,这棵树由编号从 0 到 n - 1 的 n 个节点组成。用下标从 0 开始、长度为 n 的数组 parent 来表示这棵树,其中 parent[i] 是节点 i 的父节点,由于节点 0 是根节点,所以 parent[0] == -1。该路径的长度是 3 ,所以返回 3。输入:parent = [-1,0,0,1,1,2], s = “abacbe”输入:parent = [-1,0,0,0], s = “aabc”空间复杂度:O(n)
【Leetcode 706 】设计哈希映射——数组嵌套链表(限制哈希Key) 2024-06-01 算法, 哈希算法, 链表, leetcode, 职场和发展 59人 已看 / 返回 -1(未找到),myHashMap 现在为 [[1,1], [2,2]]// myHashMap 现在为 [[1,1], [2,1]](更新已有的值)// 返回 1 ,myHashMap 现在为 [[1,1], [2,2]]// 返回 1 ,myHashMap 现在为 [[1,1], [2,1]]// 返回 -1(未找到),myHashMap 现在为 [[1,1]]// myHashMap 现在为 [[1,1], [2,2]]// myHashMap 现在为 [[1,1]]
leetcode155 最小栈 2024-06-04 算法, leetcode, 职场和发展 35人 已看 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。--> 返回 -3.minStack.getMin();--> 返回 -2.minStack.top();
最大连续1 的个数Ⅲ(滑动窗口) 2024-06-05 算法, c++, leetcode, 数据结构, 开发语言 29人 已看 首先,我们需要了解题干的意思:我们需要将给定的一个只有 0 和 1 的数组,最多将其中 k 个0改变为 1 ,来得到一个连续1最长的子串。我们肯定不能真的将原数组中的成员不断修改,因为这样会将题目变得更加复杂,那么我们可以使用一个变量 num_zero 做零计数器。题目提供k次机会把0改变为1,开始时两个指针 left 和 right 都为 0,即最开始的那个数;我们最多可以将第 6 个和第 11 个 0 改为 1,得到[1,1,1,0,0,right和left之间的最长区间就是 连续1的最大个数。
[leetcode hot 150]第一百零八题,将有序数组转换为二叉搜索树 2024-06-02 算法, java, leetcode, 职场和发展, 数据结构 32人 已看 由于给定的数组是有序的,可以利用这个特性来构建二叉搜索树。可以选择数组中间的元素作为根节点,然后递归地构建左子树和右子树。给定一个有序的整数数组,我们需要构建一棵平衡的二叉搜索树。平衡二叉树是指任意一个节点的左右子树的高度差不超过1。利用有序数组的特点,将树构建出来。排列,请你将其转换为一棵。题目:给你一个整数数组。