题目 | 算法实现 | 标签 |
---|---|---|
1.两数之和 | 1.两数之和.py | 数组,哈希表 |
2.两数相加 | 2.两数相加.py | |
3.无重复字符的最长子串 | 3.无重复字符的最长子串.py | |
4.寻找两个有序数组的中位数 | 4.寻找两个有序数组的中位数.py | |
5.最长回文子串 | 5.最长回文子串.py | |
11.盛最多水的容器 | 11.盛最多水的容器.py | |
19.删除链表的倒数第N个结点 | 19.删除链表的倒数第N个结点.py | 链表,双指针 |
21.合并两个有序链表 | 21.合并两个有序链表.py | 递归,链表 |
23.合并K个升序链表 | 23.合并K个升序链表.py | 链表,分治,堆(优先队列),归并排序 |
26.删除有序数组中的重复项 | 26.删除有序数组中的重复项.py | 数组,双指针 |
27.移除元素 | 27.移除元素.py | 数组,双指针 |
35.搜索插入位置 | 35.搜索插入位置.py | |
43.字符串相乘 | 43.字符串相乘.py | 数学,字符串,模拟 |
50.Pow(x,n) | 50.Pow(x,n).py | 递归,数学 |
58.最后一个单词的长度 | 58.最后一个单词的长度.py | |
62.不同路径 | 62.不同路径.py | |
63.不同路径-ii | 63.不同路径-ii.py | |
67.二进制求和 | 67.二进制求和.py | |
69.x-的平方根 | 69.x-的平方根.py | |
83.删除排序链表中的重复元素 | 83.删除排序链表中的重复元素.py | |
86.分隔链表 | 86.分隔链表.py | 链表,双指针 |
94.二叉树的中序遍历 | 94.二叉树的中序遍历.py | 栈,树,深度优先搜索,二叉树 |
100.相同的树 | 100.相同的树.py | |
104.二叉树的最大深度 | 104.二叉树的最大深度.py | |
107.二叉树的层次遍历-ii | 107.二叉树的层次遍历-ii.py | |
110.平衡二叉树 | 110.平衡二叉树.py | |
111.二叉树的最小深度 | 111.二叉树的最小深度.py | |
112.路径总和 | 112.路径总和.py | |
144.二叉树的前序遍历 | 144.二叉树的前序遍历.py | 栈,树,深度优先搜索,二叉树 |
145.二叉树的后序遍历 | 145.二叉树的后序遍历.py | 栈,树,深度优先搜索,二叉树 |
171.Excel表列序号 | 171.Excel表列序号.py | 数学,字符串 |
233.数字1的个数 | 233.数字1的个数.py | 递归,数学,动态规划 |
290.单词规律 | 290.单词规律.py | 哈希表,字符串 |
392.判断子序列 | 392.判断子序列.py | 双指针,字符串,动态规划 |
746.使用最小花费爬楼梯 | 746.使用最小花费爬楼梯.py | 数组,动态规划 |
792.匹配子序列的单词数 | 792.匹配子序列的单词数.py | 字典树,哈希表,字符串,排序 |
876.链表的中间结点 | 876.链表的中间结点.py | 链表,双指针 |
908.最小差值-i | 908.最小差值-i.py | |
1137.第N个泰波那契数 | 1137.第N个泰波那契数.py | 记忆化搜索,数学,动态规划 |
1646.获取生成数组中的最大值 | 1646.获取生成数组中的最大值.py | 数组,动态规划,模拟 |
1732.找到最高海拔 | 1732.找到最高海拔.py | 数组,前缀和 |
剑指Offer03.数组中重复的数字 | 剑指Offer03.数组中重复的数字.py | 数组,哈希表,排序 |
剑指Offer04.二维数组中的查找 | 剑指Offer04.二维数组中的查找.py | 数组,二分查找,分治,矩阵 |
剑指Offer05.替换空格 | 剑指Offer05.替换空格.py | 字符串 |
剑指Offer06.从尾到头打印链表 | 剑指Offer06.从尾到头打印链表.py | 栈,递归,链表,双指针 |
剑指Offer07.重建二叉树 | 剑指Offer07.重建二叉树.py | 树,数组,哈希表,分治,二叉树 |
剑指Offer10-I.斐波那契数列 | 剑指Offer10-I.斐波那契数列.py | 记忆化搜索,数学,动态规划 |
剑指Offer10-II.青蛙跳台阶问题 | 剑指Offer10-II.青蛙跳台阶问题.py | 记忆化搜索,数学,动态规划 |