每日一算法,由浅入深,欢迎加入一起共勉(A daily algorithm,Welcome to join and share together)
算法内容包括各大厂公司与leetcode算法题,目前主要实现是Kotlin版本,后续会加入其它语言的实现版本。当然也非常期待志同道合的伙伴一起加入来完善各种语言的实现。
不妨动动小指头,右上角点个Star
支持一下,让我们一起成长。
不积跬步,无以至千里;不积小流,无以成江海。👋🤔
- 轮转数组
- 合并两个有序数组
- 买卖股票的最佳时机
- 买卖股票的最佳时机II
- 跳跃游戏
- 跳跃游戏II
- H 指数
- O(1) 时间插入、删除和获取随机元素
- 除自身以外数组的乘积
- 加油站
- 分发糖果
- 接雨水
- 罗马数字转整数
- 整数转罗马数字
- 最后一个单词的长度
- 最长公共前缀
- 反转字符串中的单词
- Z字形变换
- 找出字符串中第一个匹配项的下标
- 文本左右对齐
- 验证回文串
- 判断子序列
- 两数之和II - 输入有序数组
- 盛最多水的容器
- 三数之和
- 长度最小的子数组
- 无重复字符的最长子串
- 串联所有单词的子串
- 最小覆盖子串
- 有效的数独
- 螺旋矩阵
- 旋转图像
- 矩阵置零
- 生命游戏
- 赎金信
- 同构字符串
- 单词规律
- 有效的字母异位词
- 字母异位词分组
- 两数之和
- 快乐数
- 存在重复元素II
- 最长连续序列
- 汇总区间
- 合并区间
- 插入区间
- 用最少数量的箭引爆气球
- 有效的括号
- 简化路径
- 最小栈
- 逆波兰表达式求值
- 基本计算器
- 环形链表
- 两数相加
- 合并两个有序链表
- 随机链表的复制
- 反转链表II
- K个一组翻转链表
- 删除链表的倒数第N个结点
- 删除排序链表中的重复元素II
- 旋转链表
- 分隔链表
- LRU缓存
- 二叉树的最大深度
- 相同数
- 翻转二叉树
- 对称二叉树
- 从前序与中序遍历序列构造二叉树
- 路径总和
- 岛屿数量
- 课程表
- 最长回文子串
- 爬楼梯
- 回文数
- 数组中的第K个最大元素
- 从中序与后序遍历序列构造二叉树
- 填充每个节点的下一个右侧节点指针 II
- 二叉树展开为链表
- 加一
- 求根节点到叶节点数字之和
- 二叉树中的最大路径和
- 二叉搜索树迭代器
- 完全二叉树的节点个数
- 最大数
- 二叉树的最近公共祖先
- 二叉树的右视图
- 二叉树的层平均值
- 二叉搜索树的最小绝对差
- 二叉搜索树中第K小的元素
- 验证二叉搜索树
- 被围绕的区域
- 字符串的排列
- 克隆图
- 课程表 II
- 二叉树的锯齿形层序遍历
- 二叉搜索树中第K小的元素
- 最长公共子序列
- 全排列
- 全排列II
- LRU: 使用单链表实现LRU
- Palindrome: 单链表判断回文
- Reversal: 单链表反转
- Circle: 链表中环的检测
- OrderMerge: 两个有序链表的合并
- DeleteLastN: 删除链表倒数第 n 个结点
- MiddleNode: 求链表的中间结点
- ValidParenthesis: 有效的括号
- MinStack: 最小栈
- Calculate: 基本的计算器
- NetGreaterElement: 下一个更大元素(LeetCode 496)
- BaseballGame: 棒球比赛(LeetCode 682)
- BackSpaceCompare: 比较含退格的字符串(LeetCode 844)
- CircleQueue: 基于数组的循环队列
- KthGrammar: 第K个语法符号(LeetCode 779)
- ValidTicTacToe: 有效的井字游戏(LeetCode 794)
- MergeSort: 归并排序
- QuickSort: 快速排序
- CountSort: 计数排序
- BubbleSort: 冒泡排序
- InsertSort: 插入排序
- SelectSort: 选择排序
- HeapSort: 堆排序
- BinarySearch: 二分查找
- BinarySearchV1: 二分查找第一个等于给定的值
- BinarySearchV2: 二分查找最后一个等于给定的值
- BinarySearchV3: 二分查找第一个大于等于给定的值
- BinarySearchV4: 二分查找最后一个小于等于给定的值
- SkipList: 跳表
- BinarySearchTree: 二叉查找树
- MaxDepth: 二叉树的最大深度
- MinimumDifference: 二叉树的最小绝对差
- Graph: 图的广度与深度优先搜索
- TopologySort: 拓扑排序
- BitMap: 位图
- Trie: trie树,解决字符串查询
- ACAutoMata: AC自动机, 字符串多模式匹配
- 01Backpack: 01-背包
- 01BackpackUpgrade: 01-背包升级版
- MinDist: 棋盘最小路径
- MinEdit: 最少编辑次数
- 01Backpack: 01-背包
- 01BackpackUpgrade: 01-背包升级版
- MinDist: 棋盘最小路径
- MinEdit: 最少编辑次数
- MaxSameLength: 最多公共子串长度
- YangHuiTriangleVer: 杨辉三角变体
- TowSum: 两数之和(1)
- AddTwoNumbers: 两数相加(2)
- MaxDepth: 二叉树的最大深度(104)
- HasCycle: 环形链表(141)
- MinimumDifference: 二叉树的最小绝对差(530)
- Connect: 填充每个节点的下一个右侧节点指针(116)
- LengthOfLongestSubstring: 无重复字符串的最长子串(3)
- ReorderList: 重排链表(143)
- RemoveKDigits: 移掉k位数字(402)
- NQueens: N皇后(51)
- SortArrayByParityII: 按奇偶排序数组 II(922)
- OddEvenList: 奇偶链表(328)
- RelativeSortArray: 数组的相对排序(1122)
- AllCellsDistOrder: 距离顺序排列矩阵单元格(1030)
- CanCompleteCircuit: 加油站(132)
- MoveZeroes: 移动零(283)
- InsertionSortList: 对链表进行插入排序(147)
- CountNodes: 完全二叉树的节点个数(222)
- LeastInterval: 任务调度器(621)
- PredictPartyVictory: Dota2 参议院(649)
- WiggleMaxLength: 摆动序列(376)
- ContainsDuplicate: 存在重复的元素(217)
- WordPattern: 单词规律(290)
- FindTheDifference: 找不同的数(389)
- CanPlaceFlowers: 种花问题(605)
- Partition: 分隔链表(86)
- SummaryRanges: 汇总区间(228)
- CheckStraightLine: 缀点成线(1232)
- AccountsMerge: 账户合并(721)
- MinCostConnectPoints: 连接所有点的最小费用(1584)
- MaximumProduct: 三个数的最大乘积(628)
- FindCriticalAndPseudoCriticalEdges: 找到最小生成树里的关键边和伪关键边(1489)
- AddToArrayForm: 数组形式的整数加法(989)
- RegionsBySlashes: 由斜杠划分区域(959)
- NumEquivDominoPairs: 等价多米诺骨牌对的数量(1128)
- MaxNumEdgesToRemove: 保证图可完全遍历(1579)
- PivotIndex: 寻找数组的中心索引(724)
- MinimumEffortPath: 最小体力消耗路径(1631)
- FairCandySwap: 公平的糖果棒交换(888)
- MedianSlidingWindow: 滑动窗口中位数(480)
- FindMaxAverage: 子数组最大平均数 I(643)
- EqualSubstring: 尽可能使字符串相等(1208)
- CheckPossibility: 非递减数列(665)
- MaxTurbulenceSize: 最长湍流子数组(978)
- SubarraysWithKDistinct: K 个不同整数的子数组(992)