Skip to content

idisfkj/daily_algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

daily_algorithm

每日一算法,由浅入深,欢迎加入一起共勉(A daily algorithm,Welcome to join and share together)

算法内容包括各大厂公司与leetcode算法题,目前主要实现是Kotlin版本,后续会加入其它语言的实现版本。当然也非常期待志同道合的伙伴一起加入来完善各种语言的实现。

不妨动动小指头,右上角点个Star支持一下,让我们一起成长。

不积跬步,无以至千里;不积小流,无以成江海。👋🤔

进阶文章(持续更新中...)

算法之旅:复杂度分析

数组:面试中的疑难点

链表:由浅入深

视频学习

经典面试 Top 150

  1. 轮转数组
  2. 合并两个有序数组
  3. 买卖股票的最佳时机
  4. 买卖股票的最佳时机II
  5. 跳跃游戏
  6. 跳跃游戏II
  7. H 指数
  8. O(1) 时间插入、删除和获取随机元素
  9. 除自身以外数组的乘积
  10. 加油站
  11. 分发糖果
  12. 接雨水
  13. 罗马数字转整数
  14. 整数转罗马数字
  15. 最后一个单词的长度
  16. 最长公共前缀
  17. 反转字符串中的单词
  18. Z字形变换
  19. 找出字符串中第一个匹配项的下标
  20. 文本左右对齐
  21. 验证回文串
  22. 判断子序列
  23. 两数之和II - 输入有序数组
  24. 盛最多水的容器
  25. 三数之和
  26. 长度最小的子数组
  27. 无重复字符的最长子串
  28. 串联所有单词的子串
  29. 最小覆盖子串
  30. 有效的数独
  31. 螺旋矩阵
  32. 旋转图像
  33. 矩阵置零
  34. 生命游戏
  35. 赎金信
  36. 同构字符串
  37. 单词规律
  38. 有效的字母异位词
  39. 字母异位词分组
  40. 两数之和
  41. 快乐数
  42. 存在重复元素II
  43. 最长连续序列
  44. 汇总区间
  45. 合并区间
  46. 插入区间
  47. 用最少数量的箭引爆气球
  48. 有效的括号
  49. 简化路径
  50. 最小栈
  51. 逆波兰表达式求值
  52. 基本计算器
  53. 环形链表
  54. 两数相加
  55. 合并两个有序链表
  56. 随机链表的复制
  57. 反转链表II
  58. K个一组翻转链表
  59. 删除链表的倒数第N个结点
  60. 删除排序链表中的重复元素II
  61. 旋转链表
  62. 分隔链表
  63. LRU缓存
  64. 二叉树的最大深度
  65. 相同数
  66. 翻转二叉树
  67. 对称二叉树
  68. 从前序与中序遍历序列构造二叉树
  69. 路径总和
  70. 岛屿数量
  71. 课程表
  72. 最长回文子串
  73. 爬楼梯
  74. 回文数
  75. 数组中的第K个最大元素
  76. 从中序与后序遍历序列构造二叉树
  77. 填充每个节点的下一个右侧节点指针 II
  78. 二叉树展开为链表
  79. 加一
  80. 求根节点到叶节点数字之和
  81. 二叉树中的最大路径和
  82. 二叉搜索树迭代器
  83. 完全二叉树的节点个数
  84. 最大数
  85. 二叉树的最近公共祖先
  86. 二叉树的右视图
  87. 二叉树的层平均值
  88. 二叉搜索树的最小绝对差
  89. 二叉搜索树中第K小的元素
  90. 验证二叉搜索树
  91. 被围绕的区域
  92. 字符串的排列
  93. 克隆图
  94. 课程表 II
  95. 二叉树的锯齿形层序遍历

链表

  1. LRU: 使用单链表实现LRU
  2. Palindrome: 单链表判断回文
  3. Reversal: 单链表反转
  4. Circle: 链表中环的检测
  5. OrderMerge: 两个有序链表的合并
  6. DeleteLastN: 删除链表倒数第 n 个结点
  7. MiddleNode: 求链表的中间结点

  1. ValidParenthesis: 有效的括号
  2. MinStack: 最小栈
  3. Calculate: 基本的计算器
  4. NetGreaterElement: 下一个更大元素(LeetCode 496)
  5. BaseballGame: 棒球比赛(LeetCode 682)
  6. BackSpaceCompare: 比较含退格的字符串(LeetCode 844)

队列

  1. CircleQueue: 基于数组的循环队列

递归

  1. KthGrammar: 第K个语法符号(LeetCode 779)
  2. ValidTicTacToe: 有效的井字游戏(LeetCode 794)

排序

  1. MergeSort: 归并排序
  2. QuickSort: 快速排序
  3. CountSort: 计数排序
  4. BubbleSort: 冒泡排序
  5. InsertSort: 插入排序
  6. SelectSort: 选择排序
  7. HeapSort: 堆排序

查找

  1. BinarySearch: 二分查找
  2. BinarySearchV1: 二分查找第一个等于给定的值
  3. BinarySearchV2: 二分查找最后一个等于给定的值
  4. BinarySearchV3: 二分查找第一个大于等于给定的值
  5. BinarySearchV4: 二分查找最后一个小于等于给定的值
  6. SkipList: 跳表

散列表

  1. HashTable: 散列表
  2. LRU: 基于散列表与双向链表的LRU

  1. BinarySearchTree: 二叉查找树
  2. MaxDepth: 二叉树的最大深度
  3. MinimumDifference: 二叉树的最小绝对差

  1. Graph: 图的广度与深度优先搜索
  2. TopologySort: 拓扑排序
  3. BitMap: 位图

Trie

  1. Trie: trie树,解决字符串查询
  2. ACAutoMata: AC自动机, 字符串多模式匹配

回溯

  1. 01Backpack: 01-背包
  2. 01BackpackUpgrade: 01-背包升级版
  3. MinDist: 棋盘最小路径
  4. MinEdit: 最少编辑次数

动态规划

  1. 01Backpack: 01-背包
  2. 01BackpackUpgrade: 01-背包升级版
  3. MinDist: 棋盘最小路径
  4. MinEdit: 最少编辑次数
  5. MaxSameLength: 最多公共子串长度
  6. YangHuiTriangleVer: 杨辉三角变体

LeetCode

  1. TowSum: 两数之和(1)
  2. AddTwoNumbers: 两数相加(2)
  3. MaxDepth: 二叉树的最大深度(104)
  4. HasCycle: 环形链表(141)
  5. MinimumDifference: 二叉树的最小绝对差(530)
  6. Connect: 填充每个节点的下一个右侧节点指针(116)
  7. LengthOfLongestSubstring: 无重复字符串的最长子串(3)
  8. ReorderList: 重排链表(143)
  9. RemoveKDigits: 移掉k位数字(402)
  10. NQueens: N皇后(51)
  11. SortArrayByParityII: 按奇偶排序数组 II(922)
  12. OddEvenList: 奇偶链表(328)
  13. RelativeSortArray: 数组的相对排序(1122)
  14. AllCellsDistOrder: 距离顺序排列矩阵单元格(1030)
  15. CanCompleteCircuit: 加油站(132)
  16. MoveZeroes: 移动零(283)
  17. InsertionSortList: 对链表进行插入排序(147)
  18. CountNodes: 完全二叉树的节点个数(222)
  19. LeastInterval: 任务调度器(621)
  20. PredictPartyVictory: Dota2 参议院(649)
  21. WiggleMaxLength: 摆动序列(376)
  22. ContainsDuplicate: 存在重复的元素(217)
  23. WordPattern: 单词规律(290)
  24. FindTheDifference: 找不同的数(389)
  25. CanPlaceFlowers: 种花问题(605)
  26. Partition: 分隔链表(86)
  27. SummaryRanges: 汇总区间(228)
  28. CheckStraightLine: 缀点成线(1232)
  29. AccountsMerge: 账户合并(721)
  30. MinCostConnectPoints: 连接所有点的最小费用(1584)
  31. MaximumProduct: 三个数的最大乘积(628)
  32. FindCriticalAndPseudoCriticalEdges: 找到最小生成树里的关键边和伪关键边(1489)
  33. AddToArrayForm: 数组形式的整数加法(989)
  34. RegionsBySlashes: 由斜杠划分区域(959)
  35. NumEquivDominoPairs: 等价多米诺骨牌对的数量(1128)
  36. MaxNumEdgesToRemove: 保证图可完全遍历(1579)
  37. PivotIndex: 寻找数组的中心索引(724)
  38. MinimumEffortPath: 最小体力消耗路径(1631)
  39. FairCandySwap: 公平的糖果棒交换(888)
  40. MedianSlidingWindow: 滑动窗口中位数(480)
  41. FindMaxAverage: 子数组最大平均数 I(643)
  42. EqualSubstring: 尽可能使字符串相等(1208)
  43. CheckPossibility: 非递减数列(665)
  44. MaxTurbulenceSize: 最长湍流子数组(978)
  45. SubarraysWithKDistinct: K 个不同整数的子数组(992)

公众号

About

🔥算法进阶,由浅入深,欢迎加入一起共勉(A daily algorithm,Welcome to join and share together)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published