Algorithm
Algorithm copied to clipboard
《剑指Offer》,《程序员代码面试指南》,Leetcode等算法题目集合。基于.net core的控制台程序,C#实现,包含每道题目的完整描述,多种解法AC代码,以及解题思路,所有题目均可直接运行以查看输出结果。常用算法汇总...
Algorithm
《剑指Offer》,《程序员代码面试指南》,Leetcode等算法题目集合以及常用算法实现汇总
本仓库是基于 .net core 的控制台程序,C#实现,包含每道题目的完整描述,多种解法AC代码,以及解题思路,所有题目均可直接运行以查看输出结果。常用算法汇总中每个算法同样有测试用例,可运行。
目录
- 剑指offer
- 排序算法
- 经典算法
- Leetcode
- 程序员代码面试指南
说明
- 剑指Offer对应题目均可以在牛客网《剑指Offer》题库中找到(共67题)
- 下面表格中可以跳转的是已完成的题目,无法跳转的表示还尚待补充
剑指Offer
| 二维数组中的查找 | 替换空格 | 从尾到头打印链表 | 重建二叉树 |
| 用两个栈实现队列 | 旋转数组的最小数字 | 斐波那契数列 | 跳台阶 |
| 变态跳台阶 | 矩形覆盖 | 二进制中1的个数 | 数值的整数次方 |
| 调整数组顺序使奇数位于偶数前面 | 链表中倒数第k个结点 | 反转链表 | 合并两个排序的链表 |
| 树的子结构 | 二叉树的镜像 | 顺时针打印矩阵 | 包含min函数的栈 |
| 栈的压入、弹出序列 | 从上往下打印二叉树 | 二叉搜索树的后序遍历序列 | 二叉树中和为某一值的路径 |
| 复杂链表的复制 | 二叉搜索树与双向链表 | 字符串的排列 | 数组中出现次数超过一半的数字 |
| 最小的K个数 | 连续子数组的最大和 | 整数中1出现的次数 | 把数组排成最小的数 |
| 丑数 | 第一个只出现一次的字符 | 数组中的逆序对 | 两个链表的第一个公共结点 |
| 数字在排序数组中出现的次数 | 二叉树的深度 | 平衡二叉树 | 数组中只出现一次的数字 |
| 和为S的连续正数序列 | 和为S的两个数字 | 左旋转字符串 | 翻转单词顺序列 |
| 扑克牌顺子 | 孩子们的游戏(圆圈中最后剩下的数) | 求1+2+3+...+n | 不用加减乘除做加法 |
| 把字符串转换成整数 | 数组中重复的数字 | 构建乘积数组 | 正则表达式匹配 |
| 表示数值的字符串 | 字符流中第一个不重复的字符 | 链表中环的入口结点 | 删除链表中重复的结点 |
| 二叉树的下一个结点 | 对称的二叉树 | 按之字形顺序打印二叉树 | 把二叉树打印成多行 |
| 序列化二叉树 | 二叉搜索树的第k个结点 | 数据流中的中位数 | 滑动窗口的最大值 |
| 矩阵中的路径 | 机器人的运动范围 | 剪绳子 |
排序算法
| 简单插入排序(Simple Insertion Sort) |
希尔排序(Shell Sort) |
冒泡排序(Bubble Sort) | 快速排序(Quick Sort) |
| 简单选择排序(Simple Selection Sort) | 堆排序(Heap Sort) | 归并排序(Merge Sort) | 桶排序(Bucket Sort) |
| 计数排序(Count Sort) | 基数排序(Radix Sort) |
经典算法
- KMP模式匹配算法
- A*寻路算法
- 哈夫曼算法
- 判断点是否在某一区域内
Leetcode
| 两数之和 | 寻找两个正序数组的中位数 | 最长回文子串 | 字符串转换整数 (atoi) |
| 最长公共前缀 | 三数之和 | 最接近的三数之和 | 有效的括号 |
| 删除排序数组中的重复项 | 盛最多水的容器 | 字符串相乘 | 反转字符串 |
| 反转字符串中的单词 III | 除自身以外数组的乘积 | 存在重复元素 | 螺旋矩阵 |
| 螺旋矩阵 II | 合并两个有序数组 | 反转链表 | 两数相加 |
| 合并两个有序链表 | 合并K个排序链表 | 旋转链表 | 环形链表 |
| 环形链表 II | 相交链表 | 删除链表中的节点 | 整数反转 |
| 回文数 | 只出现一次的数字 | 多数元素 | 2的幂 |
| 排序链表 | 搜索旋转排序数组 | 数组中的第K个最大元素 | 寻找二叉搜索树中第K个最小的元素 |
| 二叉树的最大深度 | 二叉树中的最大路径和 | 二叉搜索树的最近公共祖先 | 二叉树的最近公共祖先 |
| 括号生成 | 子集 | 全排列 | 格雷编码 |
| 爬楼梯 | 最大子序和 | 买卖股票的最佳时机 | 买卖股票的最佳时机 II |
| 不同路径 | LRU缓存机制 | 最小栈 | Nim 游戏 |
| 字符串相加 | 建立四叉树 | 矩形重叠 |
程序员代码面试指南
| 1到n中1的出现次数 | 拼接所有的字符串产生字典序最小的字符串 | 斐波那契数列问题的递归和动态规划 | 斐波那契数列问题的递归和动态规划2 |
| 斐波那契数列问题的递归和动态规划3 | 矩阵的最小路径和 | 派对的最大快乐值 | 单调栈结构(进阶) |