随笔分类 -  算法

求最大子数组问题
摘要:问题:给定一个整数序列A,序列中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。解法:第一种:暴力枚举所有的子数组,然后比较选出最大,时间复杂度O(n^2)第二种:分治法,参见算法导论,时间复杂度O(nlogn)第三种:动态规划,时间复杂度O(n)1、第一层动态规... 阅读全文

posted @ 2015-03-08 14:35 小杰鱼 阅读(222) 评论(0) 推荐(0)

基本算法概论
摘要:基本算法主要分为以下四类:1、子结构类算法:分治法,动态规划,贪心法 子结构问题主要是要知道怎么从子结构问题的解推出现在问题的解,最粗糙的是简单递归,在递归的基础上进行改进就形成了分治、动态规划和贪心。 分治法着重于从中间开始考虑 动态规划着重从头尾考虑得到子结构,着重考虑从子结构推出现有... 阅读全文

posted @ 2015-03-08 14:33 小杰鱼 阅读(200) 评论(0) 推荐(0)

google的几道面试题
摘要:Question1:如何判断两个矩形是否有重叠区域?Answer(java):public boolean checkCross(Rectangle m, Rectangle n){ //求出m,n矩形的重心 Point m_core = new Point(m.getLeft().getX(... 阅读全文

posted @ 2014-09-19 22:53 小杰鱼 阅读(606) 评论(0) 推荐(0)

轮盘赌算法
摘要:首先,这个算法可以如下表述:如果已知A类对象生成概率为P(A),B类对象生成概率为P(B),C类对象···,K类对象,他们的概率总和为1,问如何在A~K中随机生成一个对象算法理解如下:即我们需要先对0~1区段按照概率大小划分长度,设随机生成一个0~1之间的数,这种随机数生成结果是在0~1均匀分布的,... 阅读全文

posted @ 2014-09-19 22:22 小杰鱼 阅读(4871) 评论(0) 推荐(0)

导航