《剑指Offer》,《程序员代码面试指南》,Leetcode等算法题目集合以及常用算法实现汇总
本仓库是基于 .net core 的控制台程序,C#实现,包含每道题目的完整描述,多种解法AC代码,以及解题思路,所有题目均可直接运行以查看输出结果。常用算法汇总中每个算法同样有测试用例,可运行。
- 剑指Offer对应题目均可以在牛客网《剑指Offer》题库中找到(共67题)
- 下面表格中可以跳转的是已完成的题目,无法跳转的表示还尚待补充
简单插入排序(Simple Insertion Sort) | 冒泡排序(Bubble Sort) | 快速排序(Quick Sort) | |
简单选择排序(Simple Selection Sort) | 堆排序(Heap Sort) | 归并排序(Merge Sort) | 桶排序(Bucket Sort) |
计数排序(Count Sort) | 基数排序(Radix Sort) |
- KMP模式匹配算法
- A*寻路算法
两数之和 | 寻找两个正序数组的中位数 | 最长回文子串 | 字符串转换整数 (atoi) |
最长公共前缀 | 三数之和 | 最接近的三数之和 | 有效的括号 |
删除排序数组中的重复项 | 盛最多水的容器 | 字符串相乘 | 反转字符串 |
反转字符串中的单词 III | 除自身以外数组的乘积 | 存在重复元素 | 螺旋矩阵 |
螺旋矩阵 II | 合并两个有序数组 | 反转链表 | 两数相加 |
合并两个有序链表 | 合并K个排序链表 | 旋转链表 | 环形链表 |
环形链表 II | 相交链表 | 删除链表中的节点 | 整数反转 |
回文数 | 只出现一次的数字 | 多数元素 | 2的幂 |
排序链表 | 搜索旋转排序数组 | 数组中的第K个最大元素 | 寻找二叉搜索树中第K个最小的元素 |
二叉树的最大深度 | 二叉树中的最大路径和 | 二叉搜索树的最近公共祖先 | 二叉树的最近公共祖先 |
括号生成 | 子集 | 全排列 | 格雷编码 |
爬楼梯 | 最大子序和 | 买卖股票的最佳时机 | 买卖股票的最佳时机 II |
不同路径 | LRU缓存机制 | 最小栈 | Nim 游戏 |
字符串相加 |
1到n中1的出现次数 | 拼接所有的字符串产生字典序最小的字符串 | 斐波那契数列问题的递归和动态规划 | 斐波那契数列问题的递归和动态规划2 |
斐波那契数列问题的递归和动态规划3 | 矩阵的最小路径和 | 派对的最大快乐值 | 单调栈结构(进阶) |