- 博客(6)
- 收藏
- 关注
原创 LeetCode破解之大礼包:找到数组中的两个数使其和等于目标值
为了解决这个问题,我们可以使用哈希表来存储已经遍历过的数字及其对应的索引。遍历数组的过程中,我们检查目标值与当前元素的差值是否已经存在于哈希表中,如果存在则说明找到了答案,否则将当前元素及其索引加入哈希表中。这样,只需遍历一次数组即可找到答案。给定一个整数数组和一个目标值,找出数组中和为目标值的两个数,并返回它们的下标。该解决方案的时间复杂度为 O(n),其中 n 表示数组的长度。由于我们只需遍历一次数组,因此该解决方案具有较高的效率。LeetCode破解之大礼包:找到数组中的两个数使其和等于目标值。
2023-09-12 12:29:41
135
原创 最长递增子序列算法
最长递增子序列(Longest Increasing Subsequence,简称LIS)是一个经典的计算机科学问题,在许多应用领域中都有实际的应用。该算法在实际应用中具有广泛的适用性,例如在股票交易中寻找最长的上升趋势、在DNA序列分析中寻找最长的递增子序列等。在最长递增子序列问题中,我们可以使用动态规划来构建一个辅助数组,用于存储以每个元素结尾的最长递增子序列的长度。遍历整个dp数组,找到其中的最大值,即为最长递增子序列的长度。数组,找到其中的最大值,即为最长递增子序列的长度。结尾的递增子序列中。
2023-09-12 12:28:56
136
原创 组合总和算法详解与实现
它接受三个参数:start 表示当前组合的起始位置,current_sum 表示当前组合的和,combination_list 表示当前组合的元素列表。如果当前组合的和小于目标数 target,则将当前元素添加到组合列表中,并递归调用回溯函数,同时将起始位置设置为当前位置。如果当前组合的和小于目标数 target,则将当前元素添加到组合列表中,并递归调用回溯函数,同时将起始位置设置为当前位置。在回溯函数中,首先检查当前组合的和是否等于目标数 target,如果相等,则将当前组合列表添加到结果集中。
2023-09-12 12:28:11
293
原创 加油站问题:找到能够绕行一圈的最小起点
如果在任何一个加油站时累加的净油量小于零,意味着无法到达该加油站,因此我们将当前加油站作为起点的候选项,并将累加的净油量重置为零。最后,我们检查是否存在一个起点使得累加的净油量大于等于零,如果存在则返回该起点的索引,否则返回 -1。给定一个环形的加油站数组 gas 和一个环形的消耗量数组 cost,其中 gas[i] 表示第 i 个加油站可以存储的汽油量,cost[i] 表示从第 i 个加油站到下一个加油站所需的汽油量。假设汽车的油箱容量是无限的,可以从任意一个加油站出发,按照数组的顺序绕行一圈。
2023-09-12 12:27:30
103
原创 环形链表判断算法(JavaScript版)
我们可以使用两个指针来解决这个问题,一个指针称为slow,每次移动一步,另一个指针称为fast,每次移动两步。环形链表是一种链表结构,其中链表的最后一个节点指向链表中的某个节点,形成一个环。判断给定的链表是否是环形链表是一道常见的算法问题。在上述示例中,我们手动创建了一个环形链表,其中链表的最后一个节点指向node2,形成一个环。然后,我们初始化两个指针slow和fast,分别指向链表的头节点和头节点的下一个节点。最后,当slow指针等于fast指针时,说明两个指针相遇,链表中存在环,返回true。
2023-09-12 12:26:39
201
原创 二叉树的层序遍历算法
二叉树的层序遍历算法是一种按照层级顺序访问节点的方法,它利用队列的先进先出特性来实现。通过遍历每一层的节点,并将其子节点入队,我们可以按照层级顺序获取二叉树中的节点值。在这篇文章中,我们将介绍如何实现二叉树的层序遍历算法,并给出相应的源代码。在每一次迭代中,我们首先取出队首节点,访问它,并将它的左右子节点(如果存在)依次入队。如果该节点存在右子节点,则将右子节点入队。变量记录当前层的节点数量,这是为了在内层循环中准确地遍历当前层的节点。以上示例中,我们创建了一个二叉树,并使用层序遍历算法对其进行遍历。
2023-09-12 12:25:07
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人