《剑指Offer》以及《程序员代码面试指南:IT名企算法与数据结构题目最优解》算法题目集合以及常用算法实现汇总
本仓库是基于 .net core 的控制台程序,C#实现,包含每道题目的完整描述,AC代码,以及解题思路,所有题目均可直接运行以查看输出结果。常用算法汇总中每个算法同样有测试用例,可运行。
- 剑指Offer对应题目均可以在牛客网《剑指Offer》题库中找到(共67题)
- 下面表格中可以跳转的是已完成的题目,无法跳转的表示还尚待补充
二维数组中的查找 | 替换空格 | 从尾到头打印链表 | 重建二叉树 |
用两个栈实现队列 | 旋转数组的最小数字 | 斐波那契数列 | 跳台阶 |
变态跳台阶 | 矩形覆盖 | 二进制中1的个数 | 数值的整数次方 |
调整数组顺序使奇数位于偶数前面 | 链表中倒数第k个结点 | 反转链表 | 合并两个排序的链表 |
树的子结构 | 二叉树的镜像 | 顺时针打印矩阵 | 包含min函数的栈 |
栈的压入、弹出序列 | 从上往下打印二叉树 | 二叉搜索树的后序遍历序列 | 二叉树中和为某一值的路径 |
复杂链表的复制 | 二叉搜索树与双向链表 | 字符串的排列 | 数组中出现次数超过一半的数字 |
最小的K个数 | 连续子数组的最大和 | 整数中1出现的次数 | 把数组排成最小的数 |
丑数 | 第一个只出现一次的字符 | 数组中的逆序对 | 两个链表的第一个公共结点 |
数字在排序数组中出现的次数 | 二叉树的深度 | 平衡二叉树 | 数组中只出现一次的数字 |
和为S的连续正数序列 | 和为S的两个数字 | 左旋转字符串 | 翻转单词顺序列 |
扑克牌顺子 | 孩子们的游戏(圆圈中最后剩下的数) | 求1+2+3+...+n | 不用加减乘除做加法 |
把字符串转换成整数 | 数组中重复的数字 | 构建乘积数组 | 正则表达式匹配 |
表示数值的字符串 | 字符流中第一个不重复的字符 | 链表中环的入口结点 | 删除链表中重复的结点 |
二叉树的下一个结点 | 对称的二叉树 | 按之字形顺序打印二叉树 | 把二叉树打印成多行 |
序列化二叉树 | 二叉搜索树的第k个结点 | 数据流中的中位数 | 滑动窗口的最大值 |
矩阵中的路径 | 机器人的运动范围 | 剪绳子 |
简单插入排序(Simple Insertion Sort) | 冒泡排序(Bubble Sort) | 快速排序(Quick Sort) | |
简单选择排序(Simple Selection Sort) | 堆排序(Heap Sort) | 归并排序(Merge Sort) | 桶排序(Bucket Sort) |
计数排序(Count Sort) | 基数排序(Radix Sort) |
1到n中1的出现次数 | 拼接所有的字符串产生字典序最小的字符串 |