12 2021 档案
摘要:147. 对链表进行插入排序 思路: 与数组插入排序的思路相同,都是先有一个有序序列,然后拿着待插入元素,在有序序列中找到正确的位置; 链表有序序列的初始化方式就是,先定义一个哨兵dummyNode,然后让head节点成为第一个有序的序列的元素,维护一个lastSortNode保存有序序列的最后一个
阅读全文
摘要:148. 排序链表 思路: 采用对数组进行归并排序的相同思路,依旧是对链表进行递归,递归到只有一个元素的时候,在对链表进行合并操作。 只不过,在查找链表的中间点的方式是利用快慢指针。在合并两个有序链表的时候,创建哨兵进行合并。 图解答案,自顶向下归并排序:https://leetcode-cn.co
阅读全文
摘要:11. 盛最多水的容器 class Solution { public int maxArea(int[] height) { if (height == null || height.length == 0) { return 0; } int start = 0; int end = heigh
阅读全文
摘要:23. 合并K个升序链表 思路: 将两个有序链表合并,推广到n个链表的合并,就是将n个链表两两合并,再合并,就是归并排序的思维,现将数组递归到单个元素终止,然后执行两两merge。 https://leetcode-cn.com/problems/merge-k-sorted-lists/solut
阅读全文
摘要:15. 数组中的第K个最大元素 package 数组; import jdk.nashorn.internal.ir.CallNode; import java.util.Random; public class 数组中的第k大元数 { public static void main(String[
阅读全文
摘要:43. 字符串相乘 package 字符串; public class 字符串相乘 { public static void main(String[] args) { String num1 = "123"; String num2 = "456"; 字符串相乘 o = new 字符串相乘();
阅读全文
摘要:394. 字符串解码 package 字符串; import java.util.Stack; public class 字符串解码 { public static void main(String[] args) { String s = "3[a2[c]]"; 字符串解码 o = new 字符串
阅读全文
摘要:146. LRU 缓存机制 (1)直接使用LinkedHashMap package 链表; import java.util.LinkedHashMap; import java.util.Map; public class LRUCache extends LinkedHashMap<Integ
阅读全文