Skip to content

wangshen2016/Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

博客地址:https://blog.csdn.net/Ives_WangShen

仓库中涵盖的算法如下

链表

  1. 求链表中点
  2. 循环链表问题
  3. 链表相交问题
  4. 链表反转:递归/非递归
  5. 链表/双向链表/队列/栈的实现
  6. 链表patition
  7. 有随机指针的链表的拷贝

队列

  1. 队列实现
  2. 双向队列实现

  1. 前缀树trie实现
  2. 二叉树遍历:先序/中序/后序/层序 递归/非递归
  3. 二叉树序列化与反序列化
  4. 二叉树打印
  5. AVL树实现及相关算法
  6. 红黑树实现(TODO)
  7. 求中序遍历某节点的前驱和后继节点

  1. 最大堆实现
  2. 最小堆实现

排序算法

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 归并排序
  5. 快速排序
  6. 堆排序
  7. 计数排序
  8. 基数排序
  9. 荷兰国旗问题(partition)
  10. 最小和问题(MergeSort)
  11. 逆序对个数问题(MergeSort)

常用算法

  1. LRU算法实现:leetcode145题
  2. 表达式求值:中缀表达式转后缀表达式求值

树形DP

  • 给定一颗二叉树的头节点,返回这颗二叉树是不是平衡二叉树
  • 给定一颗二叉树的头节点,任何两个节点之间都存在距离,返回整颗二叉树的最大距离
  • 给定一颗二叉树的头节点,返回这颗二叉树的最大搜索子树的节点数
  • 给定一棵二叉树头节点,返回其最大二叉搜索子树的头节点
  • 派对的最大快乐值问题
  • 给定一棵二叉树的头节点,返回这棵二叉树是不是满二叉树
  • 给定一棵二叉树头节点,判断是不是完全二叉树
  • 给定一棵二叉树的头节点,和另外两个节点a和b,返回a和b的最低工共祖先

贪心算法

  • 给定一个由字符串组成的数组,必须把所有字符串拼接起来,返回所有可能的结果中,字典序最小的结果
  • 项目最大收益问题
  • 切金条最小代价(哈夫曼树)问题
  • 照亮居民点所需最少灯数问题
  • 一个会议室,最多安排项目宣讲场次问题

并查集

  • 多账号用户问题
  • kruskal算法(5.图 中的最小生成树问题)

  • 广度优先遍历
  • 深度优先遍历
  • 拓扑排序
  • 无向图的最小生成树问题:kruskal算法、prim算法
  • 最短路径问题:dijkstra算法

暴力递归转动态规划

  • 二分法求数组最大值
  • 不适用额外空间实现栈的反转
  • 字符串的全排列
  • 汉诺塔问题
  • 数字序列转换为字母序列
  • 字符串的子序列
  • 背包问题暴力递归解法
  • 卡片赢家暴力递归解法
  • 货币价值问题
  • 贴纸拼凑问题
  • 最长公共子序列问题
  • 洗咖啡杯问题
  • 马走棋盘问题

滑动窗口和单调栈问题

  • 打印arr中每个位置i左边和右边最近的比arr[i]小的值
  • arr中任何一个子数组sub,一定能算出(sub累加和)*(sub中的最小值)是什么
  • 某个arr中的子数组sub,如果想达标,必须满足:sub中的最大值 - sub中的最小值 <= num;返回arr中达标子数组的数量
  • 给出一个整形数组arr,窗口大小w,返回在将窗口从左向右移动过程中,窗口中的最大值

kmp算法及应用

  • kmp算法
  • 环回字符串问题
  • 相同结构子树问题

About

数据结构与算法学习

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages