• 算法 - 快速排序

    题目来源: https://www.acwing.com/problem/content/787/ 描述: 给定你一个长度为n的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 快速排序是一种分而治之的一种排序方法,时间复杂度: 期望$O(nlog...
  • 算法 - 归并排序

    题目来源: https://www.acwing.com/problem/content/789/ 描述: 给定你一个长度为n的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 归并排序的思路: 首先确定分界点,归并排序是以中间点划分,mid =...
  • 算法 - 01背包

    来源: https://www.acwing.com/problem/content/2/ 推荐视频讲解: https://www.acwing.com/video/322/ 题目描述: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 w...
  • 算法 - 分组背包问题

    来源: https://www.acwing.com/problem/content/9/ 推荐视频讲解: https://www.acwing.com/video/341/ 有 N 组物品和一个容量是 V 的背包。 每组物品有若干个,同一组内的物品最多只能选一个。 每件物品的体积是 $v_...
  • 算法 - 动态规划基础

    动态规划是数据结构和算法中比较难的一部分,我学动态规划也是走走停停,从来没有完整学完过动态规划。所以我打算这一次完完整整的学完动态规划,并通过写题解的方式记录下来。 接下来是正文。 动态规划是什么?又是一个非常高大上的一个名词,百度百科解释如下: 动态规划(Dynamic Programmi...
  • 算法 - 多重背包

    来源: https://www.acwing.com/problem/content/4/ 推荐视频讲解: https://www.acwing.com/video/325/ 题目描述: 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi...
  • 算法 - 完全背包

    来源: https://www.acwing.com/problem/content/3/ 推荐视频讲解: https://www.acwing.com/video/324/ 题目描述: 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 ...
  • 算法 - 数字三角形

    题目来源: https://www.acwing.com/problem/content/900/ 题目描述: 给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大 这道题非常注重边界...
  • 算法 - 整数划分

    来源: https://www.acwing.com/problem/content/902/ 描述: 一个正整数n可以表示成若干个正整数之和,形如:$n=n1+n2+…+nk$,其中$n1≥n2≥…≥nk,k≥1$。 我们将这样的一种表示称为正整数n的一种划分。 现在给定一个正整数n,请你...
  • 算法 - 最短编辑距离

    来源: https://www.acwing.com/problem/content/description/904/ 描述: 给定两个字符串A和B,现在要将A经过若干操作变为B,可进行的操作有: 1.删除–将字符串A中的某个字符删除。 2.插入–在字符串A的某个位置插入某个字符。 3.替换...