
算法
文章平均质量分 91
学习算法,分享算法
一口酥Hac
访问:https://yikousu.github.io
展开
-
力扣hot100--2
(Binary Tree)是一种树形数据结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树在算法和计算机科学中具有广泛的应用,特别是在表达式解析、搜索算法、排序算法、优先级队列、堆和其他数据结构中。递归:迭代:回溯:动态规划:分治法:原题链接:二叉树的中序遍历方法2–使用栈栈(Stack):利用栈来模拟递归的行为。栈在遍历左子树时保存节点,确保能够回到父节点,并遍历右子树。对于二叉树的中序遍历,访问节点的顺序是:。代码的关键在于使用了一个来模拟递归调用的过程。题目: 二叉树的最大原创 2025-01-27 10:46:06 · 671 阅读 · 0 评论 -
力扣hot100
因为 HashSet 使用的是对象的引用进行比较,所以如果两个节点是同一个节点(即内存地址相同),HashSet 会检测到这个重复的引用,从而判断链表中存在环。我的思路是通过排序后的字符串作为哈希表的键,将原字符串作为值添加到相应的键对应的列表中。否则,更新 merged 列表中最后一个区间的结束值。思路是通过遍历两个链表,计算对应节点值与进位的和,处理进位并构建新链表,最后返回不含虚拟头节点的结果链表。评论区看到一个【还有句话:走到尽头见不到你,于是走过你来时的路,等到相遇时才发现,你也走过我来时的路。原创 2024-11-28 16:53:23 · 1201 阅读 · 0 评论 -
数据结构 -- 跳表
它可以看作是链表与二分查找的结合体,能够在保持数据有序的同时,实现快速的查找,时间复杂度与平衡树(如红黑树)相同,但实现上更为简单。,但是其底层结构需要维护多个层次的节点分裂、合并等复杂操作,特别是在插入和删除时,涉及平衡和重构,带来较高的性能成本。,但其结构更简单,动态操作(如插入、删除、更新)的实现也更加直接,符合 Redis 追求简洁高效的设计理念。删除操作与查找操作类似,从最高层开始查找需要删除的元素,找到元素后,在每一层级的链表中删除该元素的索引。:Redis 的有序集合为什么不使用B+树?原创 2024-10-11 16:13:21 · 1718 阅读 · 0 评论 -
数据结构--二叉树
二叉树(Binary Tree)是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。二叉树是各种树结构的基础,广泛应用于数据存储、排序、搜索等领域。原创 2024-09-10 21:01:04 · 1918 阅读 · 0 评论 -
数据结构--大根堆小根堆
堆是一种优先级队列实现,通常用于高效地找出最值(最大或最小值)。堆的每个父节点都和其子节点满足一定的关系。是堆调整操作的核心,用来维护堆的性质。是堆(Heap)数据结构的两种类型,它们都是。个元素,这些元素在数组中的索引是从。堆可以使用数组来实现,这是由于堆的。假设堆中某个节点位于数组的索引。最小堆(又称:小根堆,小顶堆)最大堆(又称:大根堆,大顶堆)结构具备的特性使得它可以。映射到一个一维数组中。原创 2024-09-09 17:38:55 · 2232 阅读 · 0 评论 -
动态规划DP--背包问题
在 0-1 背包问题中,给定一个背包的最大容量W,以及n重量:第i个物品的重量为wt[i]价值:第i个物品的价值为val[i]目标是选择若干个物品装入背包,使得在不超过背包最大容量W的前提下,装入背包的物品的总价值最大。注意:0-1 背包中的 “0-1” 指的是每个物品只能被选取一次(即要么选择该物品,要么不选,不存在把物品拆一半放入背包)。这个0-1背包问题很经典。详情可以买本labuladong的算法笔记这本书看看,或者去网站看。原创 2024-09-05 17:20:11 · 1284 阅读 · 0 评论 -
力扣刷题(复习版2)
设 currentSum 表示当前的前缀和,也就是从数组起点到当前位置的元素之和。我们希望找到一个子数组,使得这个子数组的和等于 k。假设我们当前遍历到数组位置 j,当前的前缀和为 currentSum。具体来说,遍历字符串 s,并用变量 preSign 记录每个数字之前的运算符,对于第一个数字,其之前的运算符视为加号。(因为已知k,不知道sum[i-1] ,所以把k移到等号左边,看map中是否包含sum[i-1],包含则说明。O(n) 检查回文(reverse() 需要 O(n))方法1:暴力(通过了)原创 2024-09-04 22:24:11 · 404 阅读 · 0 评论 -
力扣刷题 --(复习动态规划)
确定DP数组(或表)中的状态代表什么。状态通常是对问题的某一方面的描述,可以是一个数组或矩阵中的一个元素。原创 2024-08-28 18:17:25 · 1399 阅读 · 0 评论 -
力扣刷题(复习版1)
拿到一个题目要认真读题(建议读2遍),没思路可以看一下提示,有时候提示会给你一些解题思路的不要被给的输入输出示例迷惑了,有时候会干扰你解题的。原创 2024-08-26 13:10:54 · 569 阅读 · 0 评论 -
回溯之全排列
回溯算法是一种通过逐步构建解决方案来解决问题的方法。全排列问题是其中一个经典的应用之一。它的基本思想是尝试所有可能的排列方式,并逐步构建解决方案,如果发现当前尝试的排列不符合条件,则回溯到上一步,尝试其他可能的选择。回溯算法本质就是DFS,深搜。全排列就是可以画成一棵树。有三个概念要清楚。选择列表路径 结束条件选择列表指的是在每一步中可以做出的选择,即当前可用的候选元素或者决策。在全排列问题中,选择列表就是尚未被选取的数组元素。路径指的是当前已经做出的选择,即当前已经形成的部分排列。原创 2024-04-06 14:17:35 · 798 阅读 · 1 评论