摘要: 1.我对回溯算法的理解 回溯法与前几章我们所学的其他算法相同,都是求解问题最优解的算法,基于深度优先策略求解组合数较大的问题; 回溯法解决问题的步骤:对给出的问题建立一个解空间树,深度优先搜索遍历每个结点并对每个结点所得问题解进行比较,从而得到最优解。 回溯法注意事项:回溯法在求问题的所有解时,要回 阅读全文
posted @ 2020-12-19 00:12 Sarefina 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 1.对贪心算法的理解 运用贪心算法解决问题时我们将一个问题分解为若干个子问题,求解每个子问题的最优解并合并得到所求问题的解。 然而贪心算法所做的选择只是局部的最优选择,合并得到的最终结果不一定是整体最优的(如找硬币问题),但即使不能得到整体最优解,运用贪心算法求得的最终结果也是最优解很好的近似解。 阅读全文
posted @ 2020-11-14 17:04 Sarefina 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 1. 单调递增最长子序列 1.1 根据最优子结构性质,列出递归方程式 设a[ ]存放输入的一组数,b[ ]存放单调递增子序列的长度,max为b[ ]中最大元素以得到最长单调递增子序列的长度 递归方程式: b[ i ] = b[ j ] + 1, a[ i ] > a[ j ] && b[ i ] < 阅读全文
posted @ 2020-10-31 08:28 Sarefina 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1. 实践题目名称:找第k小的数 2. 问题描述:输入k和一个数组,输出数组中第k小的数,且算法时间复杂度为O(n) 3. 算法描述:由 int Partition(int a[], int left, int right) 、int Find(int a[], int left, int righ 阅读全文
posted @ 2020-10-03 11:28 Sarefina 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1. 请谈一下你对分治法思想的体会: 分治法的基本思想是将一个规模为n的问题分解成k个规模较小的子问题,这些子问题互相独立且与原问题相同。求解各个子问题并将子问题答案合并就得到了原问题的答案。 所谓分治,就是分而治之的意思,遇到难以一次性解决的问题时我们不妨先将其分解,也就是“分”。再求解合并,也就 阅读全文
posted @ 2020-10-01 07:37 Sarefina 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1.编码规范:本学期编码我将遵循Google编码规范 - 链接http://zh-google-styleguide.readthedocs.org/en/latest/google-cpp-styleguide/ 阅读该编码规范后觉得该编码优点颇多:既有防止错误使用C++的某些特性而导致bugs的 阅读全文
posted @ 2020-09-15 13:31 Sarefina 阅读(129) 评论(0) 推荐(0) 编辑