算法分析之 五大常用算法 算法的复杂度 算法分析之 五大常用算法 算法的复杂度 1.分治法 · 话说递归与HANOI塔 · 二分法求方程近似解 · 用C++实现合并排序 · 求最大值和最小值的分治算法 2.动态规划法 · 动态规划求0/1背包问题 · 最长公共子串问题的实现 · 用动态规划实现导弹拦 ...
分类:
编程语言 时间:
2016-05-30 13:00:38
阅读次数:
165
现在的很多游戏中的地图一般采用格子的方式,虽然在表面地图上无法看到实际的格子,但是在地图的结构中专门有一个逻辑层,这个层和地图大小相等,划出很多小的格子,然后在可以通过的地方使用0表示,在有障碍的且不能通过的地方用1或者其他数字表示(如图所示)。有了这个逻辑层之后,实际上自动寻路就转换成了如何在一个 ...
分类:
编程语言 时间:
2016-05-29 19:58:45
阅读次数:
154
题目20:编写函数jsvalue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)最后调用函数writeDat()读取10个数据t,分别得出结果且把结果输出到文件ou ...
分类:
编程语言 时间:
2016-05-29 18:03:28
阅读次数:
156
本文是【常用算法思路分析系列】的第四篇,总结链表相关的高频题目和解题思路。本文分析如下几个问题:1、环形链表的差值问题;2、只能访问单个结点的删除问题;3、链表的分化;4、打印两个链表的公共部分;5、把链表的每k个结点逆序;6、删除链表中指定结点;7、判断链表是否为回文结构;8、复杂链表的复制;9、判断链表是否有环;10、判断两个无环链表是否相交;11、判断两个有环链表是否相交;12、判断两个链表...
分类:
编程语言 时间:
2016-05-24 13:43:40
阅读次数:
209
常用算法: 一、HMM及CRF相关 二、特征工程 1.总概的一篇文章:http://weibo.com/p/1001593872942714153228 2. 很全面的一篇http://blog.csdn.net/jasonding1354/article/details/47171115 3. 特 ...
分类:
其他好文 时间:
2016-05-21 14:28:52
阅读次数:
140
本文是【常用算法思路分析系列】的第三篇,分析栈和队列相关的高频题目。本文分析:1、可查询最值的栈;2、用两个栈实现队列的功能;3、反转栈中元素;4、排序栈中元素;5、滑动窗口问题。
本系列前两篇导航:
【常用算法思路分析系列】排序高频题集
【常用算法思路分析系列】字符串高频题集
1、可查询最值的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。...
分类:
编程语言 时间:
2016-05-21 11:47:49
阅读次数:
252
在微信中看到的,感觉挺不错,在这里贴一下
1、矢量减法
设二维矢量 P = (x1,y1) ,Q = (x2,y2)
则矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )
显然有性质 P - Q = - ( Q - P )
如不加说明,下面所有的点都看作矢量,两点的减法就是矢量相减;
2、矢量叉积
设矢量P = (x1,y1) ,Q = ...
分类:
编程语言 时间:
2016-05-21 11:46:20
阅读次数:
221
、矢量减法
设二维矢量 P = (x1,y1) ,Q = (x2,y2)
则矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )
显然有性质 P - Q = - ( Q - P )
如不加说明,下面所有的点都看作矢量,两点的减法就是矢量相减;
2、矢量叉积
设矢量P = (x1,y1) ,Q = (x2,y2)
则矢量叉积定义为: P × Q = x1*y2 ...
分类:
编程语言 时间:
2016-05-20 19:39:02
阅读次数:
336
本文是【常用算法思路分析系列】的第二篇,分析字符串相关的高频题目。第一篇是关于排序相关的高频题,还没有看的同学请移步:【常用算法思路分析系列】排序高频题集。
本文分析的高频题目有,1、KMP字符匹配;2、判断是否为变形词;3、旋转词;4、字符串逆序调整;5、字符串部分整体交换;6、字符拼接得到最小字典序字符串;7、空格替换;8、合法括号序列判断;9、最长无重复字符子串。
对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同,即给定两棵二叉树的头结点A和B,请返...
分类:
编程语言 时间:
2016-05-17 08:37:20
阅读次数:
413