上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页
摘要: 题目描述 思路一:堆排序、小顶堆 定义一个最小堆 将链表的所有节点放入一个最小堆中 直接用队列弹出的最小值依次覆盖掉原链表的值 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * L 阅读全文
posted @ 2023-12-11 21:02 Ac_c0mpany丶 阅读(22) 评论(0) 推荐(0)
摘要: 题目描述 思路: 创建dummy节点,令dummy.next = head。令cur表示当前到达的节点,初始时cur = dummy。每次需要交换cur后面的两个节点。 如果cur的后面没有节点或者只有一个节点,则没有更多的节点需要交换,因此结束交换。否则,获得cur后面的两个节点node1和nod 阅读全文
posted @ 2023-12-11 21:01 Ac_c0mpany丶 阅读(12) 评论(0) 推荐(0)
摘要: 题目描述 思路一:使用辅助栈 定义一个[数据栈]来支持push、pop、top操作 定义一个[辅助栈],其栈顶为当前的最小值,以支持常数时间复杂度的getMin操作 思路二:使用ArrayDeque 栈元素中除了保存当前值之外,额外保存当前最小值 使用静态内部类 方法一:对应思路一 class Mi 阅读全文
posted @ 2023-12-10 11:54 Ac_c0mpany丶 阅读(25) 评论(0) 推荐(0)
摘要: 题目描述 思路: 栈的经典应用。 注意下遇到右括号的代码,即边界情况: // 遇到右括号,则进行括号匹配 if (!stack.isEmpty() && stack.peek() == match(c)) { // 如果匹配则直接弹出栈顶元素 stack.pop(); } else { // 如果不 阅读全文
posted @ 2023-12-09 14:52 Ac_c0mpany丶 阅读(14) 评论(0) 推荐(0)
摘要: 题目描述 思路:一个大根堆+一个小根堆+保持数量 一个大根堆用来记录数轴左边的数值 一个小根堆用来记录数轴右边的数值 大根堆的容量要么等于小根堆的容量(此时是偶数个有序整数列表),要么大根堆的容量比小根堆的容量大1(此时是奇数个有序整数列表) 如果数量不符合上述条件,则将超过容量的那个堆的堆顶元素插 阅读全文
posted @ 2023-12-08 17:04 Ac_c0mpany丶 阅读(22) 评论(0) 推荐(0)
摘要: 题目描述 思路:小顶堆 维护一个大小为K的小顶堆 遍历所有元素: 如果当前堆中元素个数小于K,则将元素添加到堆中 如果当前堆中元素个数等于K,则判断第K + 1 方法一: class Solution { public int findKthLargest(int[] nums, int k) { 阅读全文
posted @ 2023-12-08 17:02 Ac_c0mpany丶 阅读(11) 评论(0) 推荐(0)
摘要: 题目描述 思路:小顶堆 首先遍历整个数组,并是用哈希表记录每个数字出现的次数,并形成一个"出现次数数组"。 找出原数组的前k个高频元素,就相当于找出"出现次数数组"的前K大的值。 建立一个小顶堆,然后遍历"出现次数数组" 如果堆的元素个数小于k,就可以直接插入堆中。 如果堆的元素个数等于k,则检查堆 阅读全文
posted @ 2023-12-08 17:01 Ac_c0mpany丶 阅读(20) 评论(0) 推荐(0)
摘要: 题目描述 思路:模拟 每次3个数相加:l1链表的值 + l2链表的值 + 进位 如果 l1链表不为空 或者 l2链表不为空 或者 进位不为0 我们就执行循环 那么和存储的是 t % 10 进位就是t / 10 因为题目需要创造一条链表,所以我们创建一个dummy结点的话会方便一点。 方法一: /** 阅读全文
posted @ 2023-12-07 19:42 Ac_c0mpany丶 阅读(16) 评论(0) 推荐(0)
摘要: 题目描述 思路:快慢指针 快指针一次走两步 慢指针一次走一步 当快指针到达末尾的时候,慢指针所指的就是链表的中点 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode 阅读全文
posted @ 2023-12-07 19:41 Ac_c0mpany丶 阅读(20) 评论(0) 推荐(0)
摘要: 题目描述 思路:优先队列 使用优先队列这个数据结构,对于这个数据结构,我们不用去管内部是如何实现的,我们只要知道有这么一种数据结构能帮助我们将一堆数据塞到优先队列这一个黑盒中,然后我们可以获取这堆数中最小的值或者最大的值。 代码一: /** * Definition for singly-linke 阅读全文
posted @ 2023-12-07 19:40 Ac_c0mpany丶 阅读(28) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页