Skip to content

ouweibin/Data-Structure-and-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data-Structure-and-Algorithm

持续更新

归纳

  • 满二叉树

    完全二叉树(堆)

    二分搜索树

    平衡二叉树(AVL)

    红黑树

基本

  • 字符串分割

  • 最大公约数

  • 进制转换

  • 字符串整数转换

  • 二叉树非递归遍历

  • 二分搜索树删除任意一个节点

  • 二叉树序列化和反序列化

  • 树的构建

  • 求平方根

    牛顿迭代:时间复杂度O(logn),空间复杂度O(1)

  • 求幂方

    快速幂算法:时间复杂度O(logn),空间复杂度O(1)

  • 质数计数

    厄拉多塞筛法:时间复杂度O(nloglogn),空间复杂度O(n)

  • 字节序判断

  • 字符串函数简单实现

  • 矩阵乘法的实现

  • 左旋转字符串

  • 组合公式

  • 线程交叉打印值

  • 反转链表

数据结构

  • 单调双向队列

    滑动窗口的最值问题

  • 单调栈

    找出数组每个元素左右距离最近的比它大的数字

  • 大小堆

  • 双指针,窗口

    和为Sum的连续正数序列(有序)

    和为Sum的连续正数序列(无序)

  • 快慢指针

    判断链表是否有环

    去除有序数组重复元素

  • 并查集

  • Trie树

    搜索引擎的搜索关键词提示功能

  • 哈希链表

    LRU缓存机制,时间复杂度O(1)

  • 哈希表

    word单词拼写检查功能

  • 邻接表、邻接矩阵

  • 布隆过滤器

  • 跳表

  • 线段树

  • 霍夫曼编码

  • 索引堆

算法

  • 排序

    冒泡排序、选择排序、插入排序

    快速排序、归并排序、堆排序

    桶排序、计数排序、基数排序

  • 蓄水池抽样算法

  • 抢红包算法

  • Knuth洗牌算法

  • 等概率选取问题

  • 二分查找

    查找最左边界和最右边界

    数字在排序数组中出现的次数

    有序旋转数组最小值

    有序旋转数组查找某个值

  • 多数投票算法

    数组中找出出现次数大于一半的数,时间复杂度O(n),空间复杂度O(1)

  • FloodFill算法

  • KMP算法

  • 最小生成树

    Prim算法

    Kruskal算法

  • 最短路径算法

    Floyd算法

    Dijsktra算法

    Bellman-Ford算法

  • 马拉车算法

    最长回文子串,时间复杂度O(n)

  • Morris遍历

  • BFPRT算法

    找出无序数组中最小的k个数

  • 完美洗牌算法

思想和编程技巧

  • 广度优先搜索(BFS)和深度优先搜索(DFS)

    拓扑排序

  • 动态规划(递归 + 记忆化搜索),滚动数组优化空间复杂度

    楼层扔鸡蛋问题

    最长回文子串

    Longest Increasing Subsequce

    Longest Increasing Substring

    Longest Common Subsequence

    Longest Common Substring

    背包类DP

    区间类DP

    匹配类DP:正则表达式匹配,最小编辑代价

    博弈类DP

  • 递归

    汉诺塔问题

    二叉树两个节点的最近公共祖先

    反向打印链表

    烧饼排序

  • 迭代

    约瑟夫问题

    非递归归并

  • 回溯

    N皇后问题

    全排列

    第K个排列

    下一个排列

    组合,组合总和问题

    子集

  • 贪心

    小区间覆盖大区间问题

    区间问题

    根据身高重建队列

    买卖股票

  • 位运算和位操作

    快速得到二进制数最后一个1的位置:n &= ~n+1

    整数中1的个数:时间复杂度只跟1的次数有关

    加法实现

About

数据结构和算法,C++实现

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published