摘要: 1. 你对回溯算法的理解 回溯法按深度优先策略搜索问题的解空间树。 1)基本思想: 首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,利用剪枝函数判断该节点是否可行。若可行,进入该子树,继续按深度优先策略搜索,即得到问题的解,如果不可行,则跳过对该节点为根的子树的搜索,逐层向其祖先节点 阅读全文
posted @ 2020-12-20 09:23 Tommy仔 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1.复杂度要求O(logn),故考虑用二分。2.string类型排序和比较和一般的数字类似,直接类比,只是换了数据类型。3.解题思路:每次对于给出的字符串,找它是否存在于字典中(查找的方式采用二分查找,由于字典中的字符串已经有序,故不需要再排序)。若存在,则说明没有拼写错误,否则说明拼写错误。 co 阅读全文
posted @ 2020-11-19 10:52 Tommy仔 阅读(335) 评论(1) 推荐(0) 编辑
摘要: 1.你对贪心算法的理解 所谓贪心算法是指,在对一个问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,贪心算法所做出的仅仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,所做的选 阅读全文
posted @ 2020-11-14 23:07 Tommy仔 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 1.“单调递增最长子序列”题目分析: 1.1 根据最优子结构性质,列出递归方程式 由题目已知数组a的长度为n,假设从a0到ai (其中0 <= i < n)的最长递增子序列长度(length)为b[i],则知递归方程式为: b[i]=max{b[j]+1} (1 <= j < i,a[j] < a[ 阅读全文
posted @ 2020-10-31 10:59 Tommy仔 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目名称:找第k小的数。 2.问题描述:设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 3.算法描述:由函数int partition(int a[],int left,int right)、int find(int a[],int left,i 阅读全文
posted @ 2020-10-02 19:47 Tommy仔 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 分治法思想: 分治分治,也就是分而治之。分治,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并,以便各个击破,分而治之。更准确地说是,将规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与 阅读全文
posted @ 2020-10-02 18:57 Tommy仔 阅读(64) 评论(0) 推荐(0) 编辑
摘要: (1)本学期代码会参考以下网址中的代码规范:https://www.jianshu.com/p/1884cdc54409 如:代码格式: 1. 如果大括号代码为空直接'{}',大括号内有代码则:左大括号左侧不换行,右侧换行;右大括号右侧换行,左侧如果不跟else等代码换行,否则不换行; 2. 小括号 阅读全文
posted @ 2020-09-14 22:21 Tommy仔 阅读(112) 评论(0) 推荐(0) 编辑