
LeetCode刷题记录
北部湾海King
这个作者很懒,什么都没留下…
展开
-
leetCode刷题记录 92. 反转链表 II
题目: 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 思路:原创 2021-05-17 23:27:46 · 238 阅读 · 0 评论 -
LeetCode刷题 206. 反转链表
题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2021-05-15 17:15:26 · 387 阅读 · 0 评论 -
LeetCode刷题记录 295. 数据流的中位数
题目: 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数到数据结构中。 double findMedian() - 返回目前所有元素的中位数。 思路: 遇到这种求中位数的就可以用最大堆和最小堆来解决。 为什么要用最大堆和最小堆呢? 因为我们可以利用把数据分成两份,小的那一份放原创 2021-05-14 21:18:55 · 238 阅读 · 0 评论 -
LeetCode刷题记录 215 数组中的第K个最大元素
题目: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 思路: 对于寻找最大值的可往最大堆和最小堆思考,笔者是通过最小堆的方式解答。 这里先引入最小堆的概念。最小堆,是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于其左子节点和右子节点的值。 简而言之就是根结点的键值是所有堆结点键值中最小者。 如图所示 二叉树的最小值就在跟节点处。 我们可以原创 2021-05-12 19:42:32 · 125 阅读 · 0 评论