今天开始在LeetCode刷题,第一题为“两数之和(Two Sum)”,整体来讲这一题难度是比较低的,但还是在这个过程中遇到一些问题,以下主要记录出现的一些问题。 这个题目比较容易想到的方法便是穷举了,很暴力但也很直接,需要注意的一点便是向量库Vector,自己也是前一阵子开始学数据结构才知道有这个 ...
分类:
其他好文 时间:
2018-10-06 21:30:16
阅读次数:
153
策略模式是一种行为型模式,他的特点就是执行流程固定,但中间的步骤有一些差别;运行的时候才确定。官方的意思是:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。下面使用穷举法举几个简单理解的例子: 1.诸葛亮的锦囊妙计,每一个锦囊就是一个策略. 2.旅行的出游方式,选择骑自行车、坐汽车, ...
分类:
其他好文 时间:
2018-10-06 13:19:10
阅读次数:
189
续首篇,开始归纳整理常用的算法大类。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一,穷举法 特点及适用范围 暴力寻找所有的解,一般用递归求解。 解题步骤 求出问题的解的第一步 求出经过第一步限制之后的子问题的解。 ...
分类:
编程语言 时间:
2018-10-04 11:02:41
阅读次数:
183
Kd树 实现k近邻法时,主要考虑的问题是如何对训练数据进行快速的k近邻搜索。k近邻法最简单有效的方法是线性扫描(穷举搜索),即要计算输入实例与每一个训练实例的距离,再查找k近邻,当训练数据很大时,计算非常耗时,为提高KNN搜索效率,就引入了kd树的概念。 Kd树原理其实跟二分查找是一样的,比如上面这 ...
分类:
其他好文 时间:
2018-10-02 14:14:47
阅读次数:
265
bfs广搜 什么是广搜? 百度百科:个人觉得解释地并不好 个人理解:跟dfs一样暴力穷举每种状态,只不过不是“一搜到底”,而是一层一层的搜索 它有什么好处? 1. 容易理解 2. 骗分利器 3. 好写 它有什么弊端? 慢。毕竟是穷举每一种状态 如何实现? 算法流程图如下: c++ include i ...
分类:
其他好文 时间:
2018-10-02 00:21:03
阅读次数:
223
dfs深搜 什么是深搜? 百度百科:按照一定的顺序、规则,不断去试探,直到找到问题的解,试完了也没有找到解,那就是无解,试探时一定要试探完所有的情况(实际上就是穷举) 个人理解:暴力穷举每一种状态 它有什么好处? 1. 容易理解 2. 骗分利器 3. 好写 它有什么弊端? 1. 慢。毕竟是穷举每一种 ...
分类:
其他好文 时间:
2018-10-01 23:49:28
阅读次数:
329
题目如下: 解题思路:24点是非常经典的游戏了,因为本题数据量小,可以使用穷举法,把所有的可能结果都算出来。假设nums = [a,b,c,d],记f(n)表示用nums中n个数字进行运算可以得到的结果集,那么f(4)又可以记为f(4) = U(U(f(1),f(3), U(f(2),f(2))) ...
分类:
其他好文 时间:
2018-09-30 12:58:03
阅读次数:
126
联系 1.都是一种推导算法 2.都是分解成子问题来求解,都需要具有最优子结构 区别 1.贪心:每一步的最优解一定包含上一步的最优解,上一步之前的最优解则不作保留; 动态规划:全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有的局部最优解 2.贪心:如果把所有的子 ...
分类:
编程语言 时间:
2018-09-28 00:07:56
阅读次数:
235
上学期看到2018年刑侦科推理试题,直觉告诉我可以嵌套N层for循环来解答,但后面还是用组合算法穷举出所有组合算到答案,嵌套太深不好搞啊。 从 自增到 ,每2bit表示一道题的答案,即: 为A, 为B, 为C, 为D, 利用位移操作从左边高位依次读取每2bit的数,判断后不符合题意的组合就扔掉,最终 ...
分类:
编程语言 时间:
2018-09-24 20:04:03
阅读次数:
205
算法设计就从实际问题出发,通过分析和思考最终得到的一个能解决问题的过程性描述的工作过程。 算法设计中一些常见的通用的想法可以称为算法设计模式。常用的算法设计模式有: 穷举法。根据具体的问题枚举出各种可能,从中选出有用的信息或者问题的解。利用计算机的速度优势可以方便的解决很多简单问题。 贪心法。根据问 ...
分类:
编程语言 时间:
2018-09-23 18:28:51
阅读次数:
157