算法专栏

Algorithm_Note

⏰记录刷题算法笔记

📑 目录

⭐️ Leetcode_simple刷题笔记

id题目语言题解链接
1两数之和C++题解笔记
7整数反转Java题解笔记
9回文数Java题解笔记
13罗马数字转数字Java题解笔记
14最长公共前缀Java题解笔记
20有效的括号Java题解笔记
21合并两个有序链表Java题解笔记
26删除排序数组中的重复项Java题解笔记
27移除元素Java题解笔记
35搜索插入位置Java题解笔记
38报数Java题解笔记
50Pow(x,n)Python题解笔记
38报数Java题解笔记
53最大子序和Java题解笔记
54顺时针打印矩阵Python题解笔记
58最后一个单词的长度Java题解笔记
66加一Java题解笔记
67二进制求和Java题解笔记
69x的平方根Java题解笔记
70爬楼梯Java题解笔记
79单词搜索Python题解笔记
83删除排序链表中的重复元素Java题解笔记
88合并两个有序数组Java题解笔记
100相同的树Java题解笔记
101对称二叉树Java题解笔记
102二叉树的层次遍历Python题解笔记
105根据前序和中序重建二叉树Java、Python题解笔记
107二叉树的层次遍历 IIJava题解笔记
108将有序数组转换为二叉搜索树Java题解笔记
110平衡二叉树Java题解笔记
136只出现一次的数字Python题解笔记
151翻转字符串的单词Python题解笔记
155最小栈Python题解笔记
160相交链表Python题解笔记
169多数元素Python题解笔记
191位1的个数Python题解笔记
226翻转二叉树Python题解笔记
235二叉搜索树最近公共祖先Python题解笔记
260只出现一次的数字 IIIPython题解笔记
264丑数2Python题解笔记
343整数拆分Python题解笔记
645错误的集合Python题解笔记

⚡️ 剑指offer

已刷题目列表:

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题解笔记
面试题26树的子结构Python题解笔记
面试题28对称的二叉树Python题解笔记
面试题29顺时针打印矩阵Python题解笔记
面试题30包含min函数的栈Python题解笔记
面试题32-1从上到下打印二叉树Python题解笔记
面试题32从上到下打印二叉树②Python题解笔记
面试题35复杂链表的复制Python题解笔记
面试题36二叉搜索树与双向链表Python题解笔记
面试题39数组中出现次数超过一半的数字Python题解笔记
面试题40最小的k个数Python题解笔记
面试题42连续子数组的最大和Python题解笔记
面试题47礼物的最大值Python题解笔记
面试题49丑数Python题解笔记
面试题50第一个只出现一次的字符Python题解笔记
面试题52两个链表的第一个公共结点Python题解笔记
面试题53-1在排序数组中查找数字1Python题解笔记
面试题53-20~n-1中缺失的数字Python题解笔记
面试题54二叉搜索树的第k大结点Python题解笔记
面试题55-1二叉树的深度Python题解笔记
面试题55-2平衡二叉树Python题解笔记
面试题56-1数组中数字出现的次数Python题解笔记
面试题56-2数组中数字出现的次数2Python题解笔记
面试题57和为s的两个数字Python题解笔记
面试题57-2和为s的连续正数序列Python题解笔记
面试题58-1翻转单词顺序Python题解笔记
面试题58-2左旋转字符串Python题解笔记
面试题59-1滑动窗口的最大值Python题解笔记
面试题61扑克牌中的顺子Python题解笔记
面试题62圆圈中最后剩下的数字Python题解笔记
面试题64求1+2+…+nPython题解笔记
面试题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:代表数据的最大值减最小值

排序算法解析

💡 算法知识积累