数据结构:数组_小宇_4
首页
Github
力扣
M站
全部原创,请勿转载
技术:
前端
后端
音视频
数据库
运维
产品
网络
应用
插件:
开源
ShopXO
数据结构:
数组
字符串
链表
栈
单调栈
队列
优先队列
最小堆
最大堆
小根堆
大根堆
小顶堆
大顶堆
二叉树
多叉树
二叉平衡树
图
并查集
字典树
树状数组
线段树
哈希表
邻接表
矩阵
LRU
回文
集合
哈希集合
位图
位集
区间
遍历:
顺序遍历
倒序遍历
前序遍历
中序遍历
后序遍历
层序遍历
螺旋遍历
中心扩散
两端收缩
技巧:
前缀和
位运算
滑动区间
正则
双指针
回调函数
交换变量
原地修改
查找:
顺序查找
二分查找
三分查找
深度优先搜索
广度优先搜索
快速选择
排序:
冒泡排序
选择排序
插入排序
归并排序
快速排序
拓扑排序
计数排序
桶排序
堆排序
基数排序
自定义排序
数学:
求和
快速幂
质数
曼哈顿距离
中位数
丑数
杨辉三角
排列
组合
容斥原理
公约数
公倍数
日期
蔡勒公式
水塘抽样
拒绝抽样
几何
博弈
数论
概率与统计
随机化
约瑟夫环
对数
算法:
递归
迭代
哈希
KMP
回溯
贪心
动态规划
归并
Brian-Kernighan算法
凸包
语言:
JavaScript
Go
PHP
SQL
Shell
Java
Python
TypeScript
C
C++
C#
回溯 + 动态规划(掩码 · 状态压缩):2 方法求解《473. 火柴拼正方形》
回溯 + 动态规划(掩码 · 状态压缩),2 方法求解《473. 火柴拼正方形》
快速排序(快速选择)优化:双指针、打乱数组、随机基准元素(随机数、中间数、中位数)、三路划分三指针:求解《462. 最少移动次数使数组元素相等 II》
快速排序(快速选择)的优化:双指针、打乱数组(Fisher–Yates shuffle 洗牌算法)、随机基准元素(随机数、中间数、中位数)、三路划分(三切分 / 三指针 / 三分查找)。求解《462. 最少移动次数使数组元素相等 II》。
排序、最小值,基于排序获取中位数:求解《1887. 使数组元素相等的减少操作次数》《453. 最小操作次数使数组元素相等》和《462. 最少移动次数使数组元素相等 II》
排序、最小值,基于排序获取中位数,求解《1887. 使数组元素相等的减少操作次数》《453. 最小操作次数使数组元素相等》和《462. 最少移动次数使数组元素相等 II》
5 种方法交换变量,用绝对值和求模标记,用位图、掩码、哈希集合、哈希映射、正则、排序和暴力法:求解《442. 数组中重复的数据》
利用 5 种方法交换变量,用绝对值和求模标记,用位图、掩码、哈希集合、哈希映射、正则、排序和暴力法求解《442. 数组中重复的数据》
二分查找(对数运算 + 前缀和),滑动窗口:求解《713. 乘积小于 K 的子数组》
根据对数运算性质将相乘转为求和问题,用前缀和优化。二分查找,滑动窗口,求解《713. 乘积小于 K 的子数组》
双指针合并有序数组:求解《88. 合并两个有序数组》和《面试题 10.01. 合并排序的数组》
双指针合并有序数组(合并数组),注意数组越界不同语言的处理方式。求解《88. 合并两个有序数组》和《面试题 10.01. 合并排序的数组》
二维数组自定义函数排序 + 栈:按二维数组自定义函数升序排序,使用栈合并区间,求解《56. 合并区间》和《剑指 Offer II 074. 合并区间》
按二维数组自定义函数升序排序,使用栈合并区间,求解《56. 合并区间》和《剑指 Offer II 074. 合并区间》
排序、贪心、滑动窗口:求解《908. 最小差值 I》《910. 最小差值 II》和《1984. 学生分数的最小差值》
排序、贪心、滑动窗口,求数组指定加减 k 值或 k 范围内的最小差值问题。求解《908. 最小差值 I》《910. 最小差值 II》和《1984. 学生分数的最小差值》
二维前缀和:求解《303. 区域和检索 - 数组不可变》《304. 二维区域和检索 - 矩阵不可变》《427. 建立四叉树》
前缀和,二维前缀和,求数组的区间和、矩阵指定区域面积,并建立四叉树。求解《303. 区域和检索 - 数组不可变》《304. 二维区域和检索 - 矩阵不可变》《427. 建立四叉树》
奇偶双指针:求解《905. 按奇偶排序数组》
奇偶双指针,求解《905. 按奇偶排序数组》
1
2
3
4
5
上页
下页