摘要:
1.对回溯算法的理解 按深度优先策略搜索问题,从根结点出发,当搜索至某一结点,用剪枝函数判断该结点是否可行。 若不可行,则跳过以该结点为根的子树的搜索,逐层向其祖先结点回溯; 若可行,进入该子树,继续搜索。 2. 请说明“子集和”问题的解空间结构和约束函数 解空间是一颗子集树,左子树结点代表选中该数 阅读全文
摘要:
1.你对贪心算法的理解 根据策略只考虑局部最优解从而得到整体最优解 2.请说明汽车加油问题的贪心选择性质 若存在两个加油站距离大于最大油量可行驶距离,直接输出“No Solution!” 若剩余油量可到下一个加油站则继续行驶,否则加油。 3.请说明在本章学习过程中遇到的问题及结对编程的情况 有些定势 阅读全文
摘要:
1.实践题目 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 输入格式: 第 1 行是1 个正整数 a。第 2 行是正整数k。 输出格式: 输出最小数。 2.问题描述 阅读全文
摘要:
1. 你对动态规划算法的理解(2分) 动态规划就是将一个大问题划分为若干个小问题,先求解子问题,然后从这些子问题的解得到原问题的解。 用表记录已解的子问题的答案,避免重复计算提高算法效率。2. 分别列出编程题1、2的递归方程(2分) 3-1m[i] = max{m[k] | a[k]<a[i]} ( 阅读全文
摘要:
1. 实践题目 7-1数字三角形 给定一个由 n行数字组成的数字三角如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出 30 2. 问题描述 使用初始值-1 阅读全文
摘要:
一、请谈一下你对分治法思想的体会 分治法:1.分解,将原问题分为等价的规模较小的若干部分 2.求解,直接/递归求解小问题(递归需要注意边界条件) 3.合并 分治法作为一种提高效率的算法,让我接触了优化算法的思想,同时启发我需要更多的思考 二、结对编程情况 在和队友分工合作中,一人编程一人检查的方式使 阅读全文
摘要:
一、实践题目 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 输入格式: 输入有两行: 第一行是n值和x值; 第二行是n个不相同的整数组成的非降序序列,每个整数 阅读全文