摘要:
1. 你对回溯算法的理解 回溯算法有点穷举法的味道,就是运用剪枝函数把很多无效的可能值进行筛选,从而提高了程序效率。使用回溯法之前,要分析问题,把问题的所有可能解数字化,使之能够成为一个解空间树。构造出解空间树之后,就要设计剪枝函数来对代码进行优化,剪枝函数有两种,一种是约束函数,另一种是限界函数。 阅读全文
摘要:
1.你对贪心算法的理解 贪心算法是通过局部最优解来得到全局最优解的。采用贪心算法前,要先把多种的贪心策略给列出来,也就是要试着用多种策略去解决问题,然后经过一系列的筛选,最后留下来的那个策略才是最终的贪心策略。一系列的筛选包括了要去给一些策略举出反例,证明其不合理性;还要给最后留下来的那个策略,通过 阅读全文
摘要:
1. 任选作业题”单调递增最长子序列“、”挖地雷“、”编辑距离问题“中的一题分析。 3-3 挖地雷 1.1 根据最优子结构性质,列出递归方程式, m[i] = max{ a[j] + m[j] } 其中,m[i] 表示从 地窖i 到 地窖n 挖到最多的地雷数,a[j] 表示 地窖j 拥有的地雷数,i 阅读全文
摘要:
1.实践题目名称 7-1 最大子列和问题 2.问题描述 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给 阅读全文
摘要:
1.请谈一下你对分治思想的体会 分治思想的核心思想就是:将一个难以直接解决的大问题分割成一些规模较小的相同问题,以便各个击破,即分而治之。分治思想大概可以分为三个部分:①划分子问题 ②求解子问题 ③合并子问题的解。由于划分出的子问题互相独立、且与原问题相同,因而可以递归地求解子问题。所以分治思想常常 阅读全文
摘要:
1.代码规范,链接:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/ 2.我认为,算法是软件开发的技术细节背后的骨架。《数学之美》中的一个猜世界杯冠军的例子,一共有32个球队,猜一次收一块钱才回答 阅读全文