摘要:
一、 你对回溯算法的理解 l 在我的观念里,回溯法就是“暴力穷举”+“答案遍历” l 用书上的话来说就是:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标,当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。实际上就是穷举法的改进。回溯法可以避免搜索所有可能的解,可用于求解大 阅读全文
摘要:
一、 你对贪心算法的理解 贪心算法总是做出在当前看来是最好的选择,但不一定是整体的最优,只是在某种意义上的局部最优选择。 二、 请说明汽车加油问题的贪心选择性质 题目来源:王晓东《算法设计与分析》 一辆汽车加满油后可行驶 n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油, 阅读全文
摘要:
一、 实践题目 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。 输入格 阅读全文
摘要:
一、 你对动态规划算法的理解 本章动态规划,可以说是这个学期以来最难的一章了。但是世上无难事,只怕有心人。经过一段时间的学习之后,我觉得动态规划的内容是这样的: 二、 分别列出编程题1、2的递归方程 m [i] = max { m [k] + 1 | a [k] < a [i] } a [1] [j 阅读全文
摘要:
题目名:最大子段和 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 输入格式: 输入有两行: 第一行是n值(1<=n<=1000 阅读全文
摘要:
算法第二章总结 l 对分治法的理解: 第八周学习算法这门课了,越来越感觉到算法岗这条路的艰辛。但无论怎么样,最好的做法还是认真对待每一章节,每一道题目。 说到第二章,我们跟随郑琪老师学习了分治法的思想。 用我这个初学者的话来说就是,把问题拆开,本来问题很复杂,我们通过拆分之后,将问题分成两部分,再将 阅读全文
摘要:
1. 实践题目 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列 的中位数指A_(N−1)/2的值,即第⌊(N+1)/2⌋个数(A_0为第1个数)。 输入格式: 输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个 阅读全文
摘要:
一:编码规范参考链接: Google C++代码风格https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/ 二:《数学之美读后感》 数学之美读后感 说来惭愧,好久没有读书了。最近我们遇 阅读全文