View Code? Open in Web Editor
NEW
This project forked from yearing1017/algorithm_note
📚Leetcode & 算法 & 剑指offer
algorithm_note's Introduction
⏰记录刷题算法笔记
id |
题目 |
语言 |
题解链接 |
1 |
两数之和 |
C++ |
题解笔记 |
7 |
整数反转 |
Java |
题解笔记 |
9 |
回文数 |
Java |
题解笔记 |
13 |
罗马数字转数字 |
Java |
题解笔记 |
14 |
最长公共前缀 |
Java |
题解笔记 |
20 |
有效的括号 |
Java |
题解笔记 |
21 |
合并两个有序链表 |
Java |
题解笔记 |
26 |
删除排序数组中的重复项 |
Java |
题解笔记 |
27 |
移除元素 |
Java |
题解笔记 |
35 |
搜索插入位置 |
Java |
题解笔记 |
38 |
报数 |
Java |
题解笔记 |
50 |
Pow(x,n) |
Python |
题解笔记 |
38 |
报数 |
Java |
题解笔记 |
53 |
最大子序和 |
Java |
题解笔记 |
54 |
顺时针打印矩阵 |
Python |
题解笔记 |
58 |
最后一个单词的长度 |
Java |
题解笔记 |
66 |
加一 |
Java |
题解笔记 |
67 |
二进制求和 |
Java |
题解笔记 |
69 |
x的平方根 |
Java |
题解笔记 |
70 |
爬楼梯 |
Java |
题解笔记 |
79 |
单词搜索 |
Python |
题解笔记 |
83 |
删除排序链表中的重复元素 |
Java |
题解笔记 |
88 |
合并两个有序数组 |
Java |
题解笔记 |
100 |
相同的树 |
Java |
题解笔记 |
101 |
对称二叉树 |
Java |
题解笔记 |
102 |
二叉树的层次遍历 |
Python |
题解笔记 |
105 |
根据前序和中序重建二叉树 |
Java、Python |
题解笔记 |
107 |
二叉树的层次遍历 II |
Java |
题解笔记 |
108 |
将有序数组转换为二叉搜索树 |
Java |
题解笔记 |
110 |
平衡二叉树 |
Java |
题解笔记 |
151 |
翻转字符串的单词 |
Python |
题解笔记 |
155 |
最小栈 |
Python |
题解笔记 |
160 |
相交链表 |
Python |
题解笔记 |
169 |
多数元素 |
Python |
题解笔记 |
191 |
位1的个数 |
Python |
题解笔记 |
226 |
翻转二叉树 |
Python |
题解笔记 |
235 |
二叉搜索树最近公共祖先 |
Python |
题解笔记 |
343 |
整数拆分 |
Python |
题解笔记 |
id |
题目 |
语言 |
题解链接 |
面试题03 |
数组中重复的数字 |
C++、Java |
题解笔记 |
面试题04 |
二维数组中的查找 |
Java |
题解笔记 |
面试题05 |
替换空格 |
Java、Python |
题解笔记 |
面试题06 |
从尾到头打印链表 |
C++、Python |
题解笔记 |
面试题07 |
重建二叉树 |
Java、Python |
题解笔记 |
面试题09 |
用两个栈实现队列 |
C++、Python |
题解笔记 |
面试题10-1 |
斐波那契数列 |
C++ |
题解笔记 |
面试题10-2 |
青蛙跳台阶 |
C++ |
题解笔记 |
面试题11 |
旋转数组的最小数字 |
C++、Python |
题解笔记 |
面试题12 |
矩阵中的路径 |
Python |
题解笔记 |
面试题13 |
机器人的运动范围 |
Python |
题解笔记 |
面试题14-1 |
剪绳子 |
Python |
题解笔记 |
面试题14-2 |
剪绳子(大数取余) |
Python |
题解笔记 |
面试题15 |
二进制中1的个数 |
Python |
题解笔记 |
面试题16 |
数值的整数次方 |
Python |
题解笔记 |
面试题17 |
打印从1到最大的n位数 |
Python |
题解笔记 |
面试题18 |
删除链表的节点 |
Python |
题解笔记 |
面试题21 |
调整数组使奇数位于偶数前面 |
Python |
题解笔记 |
面试题22 |
链表中倒数第k个节点 |
Python、Java |
题解笔记 |
面试题24 |
反转链表 |
Python、Java |
题解笔记 |
面试题25 |
合并两个有序链表 |
Python、Java |
题解笔记 |
面试题27 |
二叉树的镜像 |
Python |
题解笔记 |
面试题28 |
对称的二叉树 |
Python |
题解笔记 |
面试题29 |
顺时针打印矩阵 |
Python |
题解笔记 |
面试题30 |
包含min函数的栈 |
Python |
题解笔记 |
面试题32 |
从上到下打印二叉树② |
Python |
题解笔记 |
面试题39 |
数组中出现次数超过一半的数字 |
Python |
题解笔记 |
面试题40 |
最小的k个数 |
Python |
题解笔记 |
面试题42 |
连续子数组的最大和 |
Python |
题解笔记 |
面试题50 |
第一个只出现一次的字符 |
Python |
题解笔记 |
面试题52 |
两个链表的第一个公共结点 |
Python |
题解笔记 |
面试题53-1 |
在排序数组中查找数字1 |
Python |
题解笔记 |
面试题53-2 |
0~n-1中缺失的数字 |
Python |
题解笔记 |
面试题54 |
二叉搜索树的第k大结点 |
Python |
题解笔记 |
面试题55-1 |
二叉树的深度 |
Python |
题解笔记 |
面试题55-2 |
平衡二叉树 |
Python |
题解笔记 |
面试题57 |
和为s的两个数字 |
Python |
题解笔记 |
面试题57-2 |
和为s的连续正数序列 |
Python |
题解笔记 |
面试题58-1 |
翻转单词顺序 |
Python |
题解笔记 |
面试题58-2 |
左旋转字符串 |
Python |
题解笔记 |
面试题59-1 |
滑动窗口的最大值 |
Python |
题解笔记 |
面试题61 |
扑克牌中的顺子 |
Python |
题解笔记 |
面试题62 |
圆圈中最后剩下的数字 |
Python |
题解笔记 |
面试题65 |
不用加减乘除做加法 |
Java |
题解笔记 |
面试题66 |
构建乘积数组 |
Python |
题解笔记 |
面试题68-1 |
二叉搜索树最近公共祖先 |
Python |
题解笔记 |
面试题68-2 |
二叉树最近公共祖先 |
Python |
题解笔记 |
排序算法 |
平均时间复杂度 |
最差时间复杂度 |
空间复杂度 |
数据对象稳定性 |
冒泡排序 |
O(n2) |
O(n2) |
O(1) |
稳定 |
选择排序 |
O(n2) |
O(n2) |
O(1) |
数组不稳定、链表稳定 |
插入排序 |
O(n2) |
O(n2) |
O(1) |
稳定 |
快速排序 |
O(n*log2n) |
O(n2) |
O(log2n) |
不稳定 |
堆排序 |
O(n*log2n) |
O(n*log2n) |
O(1) |
不稳定 |
归并排序 |
O(n*log2n) |
O(n*log2n) |
O(n) |
稳定 |
希尔排序 |
O(n*log2n) |
O(n2) |
O(1) |
不稳定 |
计数排序 |
O(n+m) |
O(n+m) |
O(n+m) |
稳定 |
桶排序 |
O(n) |
O(n) |
O(m) |
稳定 |
基数排序 |
O(k*n) |
O(n2) |
|
稳定 |
- 均按从小到大排列
- k:代表数值中的 “数位” 个数
- n:代表数据规模
- m:代表数据的最大值减最小值
algorithm_note's People
Contributors
Watchers