日常总结做的leetcode编程题,将解题思路和代码整理起来 多解会比较执行的效率 :sparkles: 运行每个类中的main函数可以执行给定的测试用例,利用AOP统计了用时
代码部分皆为手敲 经过一次次优化
3: 数字中的重复数字 4: 二维数组中的查找 5:替换空格 6:从尾到头打印链表 7:重建二叉树 9:用两个栈实现队列 10-1:斐波那契数列 10-2:青蛙跳台阶问题
11:旋转数组的最小数字 12:矩阵中的路径 15:二进制中1的个数 17:打印从1到最大的n位数 18:删除链表的节点
21:调整数组顺序使奇数位于偶数前面 22:链表中倒数第k个节点 23-1:链表中环的入口节点 23-2:找到链表中环的入口 24:反转链表 25:合并两个排序的链表 26:树的子结构 27:二叉树的镜像 28:对称的二叉树 29:顺时针打印矩阵 30:包含min函数的栈
31:栈的压入、弹出序列 34:二叉树中和为某一值的路径 36:二叉搜索树与双向链表 36:字符串的排列
23: 合并K个有序链表
深度优先
多数是基于Stack进行的操作,对于树结构,可能使用合理的递归时间复杂度更好一些
104: 二叉树的最大深度
872: 叶子相似的树
4-12: 求和路径
98: 验证二叉搜索树
广度优先
多数是基于Queue进行的操作
1306: 跳跃游戏III
16-19: 水域大小
127: 单词接龙
107: 二叉树的层次遍历II
动态规划