个人的一些关于数据结构与算法的学习记录,都是基于Python实现的,还有一些关于leetcode的解题总结,部分内容同步到个人博客小站,欢迎捧场~
每道题尽量总结多种解题思路(题目 --方法总结),熟能生巧……
- 1、03. 数组重复数字 --哈希表、原数组查重
- 1、21. 合并两个有序链表 --迭代归并、递归
- 2、206. 反转链表 --递归、迭代(前后指针)
- 3、23. 合并k个升序链表 --分治、优先队列
- 4、面试题 02.07. 链表相交 --双指针
- 5、24. 两两交换链表中的节点 --迭代(前后指针),递归
- 6、141. 环形链表 --快慢指针
- 7、25. K 个一组翻转链表
- 8、中间翻转链表
- 1、110. 平衡二叉树 --迭代所有节点高度、一次从下到上递归、返回多值递归
- 2、104. 树的最大高度 --递归、BFS、DFS(非递归)
- 3、111. 树的最小高度 --递归、BFS
- 4、101. 对称二叉树的判断 --递归、BFS
- 5、226. 翻转二叉树 --递归(前序遍历、中序遍历、后序遍历)、迭代
- 6、617. 合并二叉树 --递归、迭代(层次遍历)
- 7、654. 最大二叉树 --递归、单调栈
- 8、108.有序数组转化二叉搜索树 --递归
- 1、35.搜索插入位置 --遍历、二分
- 1、1. 两数之和 --哈希表
- 2、15. 三数之和 --对撞指针
- 3、78. 集合子集 --迭代、递归、位运算
- 4、字符串的排列组合 --递归
- 5、53. 最大子序和 --暴力,分治、动态规划
- 6、121. 买卖股票的最佳时机 --暴力、动态规划
- 7、7. 整数反转 --取余
- 8、470. 用 Rand7 () 实现 Rand10 () --独立事件概率
- 9、整数二进制下两个1之间最多的0数 --遍历、位运算
- 1、20. 有效括号 --入栈出栈、字符串替换
- 2、只能用递归实现栈的逆序 --递归
- 3、栈内元素的输出顺序种类 --动态规划
- 4、11. 接最多的水 --双指针
- 5、496. 下一个更大的元素Ⅰ --暴力、单调栈
- 6、503. 下一个更大元素 II --单调栈
- 7、每日温度 --单调栈
- 8、股票价格跨度
- 9、滑动窗口最大值
- 10、柱状图最大的矩形
- 1、1155. 掷骰子的 N 种方法 --
- 2、背包问题
- 3、爬楼梯
- 4、二维数组的DP
- 1、14. 最长公共前缀 --遍历、python语法糖
- 2、718. 最长重复子数组 --暴力、动态规划
- 3、3. 无重复字符的最长子串 --暴力、滑动窗口
- 4、300. 最长上升子序列 --动态规划
- 5、67.二进制求和 --遍历、内置函数
- 1、二分法
- 2、递归-磁盘遍历
- 3、递归-幂运算
- 4、继承
- 5、递归-翻转列表
- 6、单链表
- 7、单向循环链表
- 8、双向链表
- 9、栈
- 10、队列
- 11、双端队列
- 12、堆
- 13、二叉树
- 14、递归查找序列的最值
- 15、汉诺塔问题
- 16、实现python range
- 17、实现单调栈
- 18、绕圈圈打印整数
- 19、进制转化
- 20、迭代器
- 21、迭代生成器列表降维
- 1、冒泡排序
- 2、选择排序
- 3、堆排序
- 4、插入排序
- 5、希尔排序
- 6、归并排序
- 7、快速排序
- 8、计数排序
- 9、桶排序
- 10、基数排序
- 11、Timsort
- 12、拓扑排序