2017年9月22日
摘要: 题目描述: Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例 阅读全文
posted @ 2017-09-22 16:46 T~Z 阅读(377) 评论(0) 推荐(0) 编辑
  2017年9月21日
摘要: 题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和。 例如: 这样的一个矩阵,最大子矩阵的和为15; 此题可以让人联想到求最大连续子数组,求最大子数组在上一篇文章中http://www.cnblogs.com/tz346125264/p/7560708.html。 分析:最大子矩阵可以看 阅读全文
posted @ 2017-09-21 14:11 T~Z 阅读(702) 评论(0) 推荐(0) 编辑
  2017年9月20日
摘要: 动规思想: 状态转移方程:temp[i] = (temp[i-1]>0?temp[i-1]:0)+a[i]; temp[i]表示以第i个数字结尾的子数组的最大和 分析题目可知:temp[i]由两种情况: 1.当以第(i-1)个数字为结尾的子数组中最大和temp(i-1)小于0时,如果把这个负数和第i 阅读全文
posted @ 2017-09-20 11:55 T~Z 阅读(504) 评论(0) 推荐(0) 编辑
  2017年9月19日
摘要: 开场先来一段百度百科: 动态规划中本阶段的状态往往是上一阶段状态和上一阶段决策的结果。如果给定了第K阶段的状态Sk以及决策uk(Sk),则第K+1阶段的状态Sk+1也就完全确定。也就是说Sk+1与Sk,uk之间存在一种明确的数量对应关系,记为Tk(Sk,uk),即有Sk+1= Tk(Sk,uk)。 阅读全文
posted @ 2017-09-19 16:14 T~Z 阅读(2551) 评论(0) 推荐(0) 编辑
  2017年8月26日
摘要: 队列作为基本的数据结构,是每个coder所必须掌握的。 队列在逻辑上就像是一条打饭的长队,排在前面的先打到饭(先进先出)。 这里用一个数组用以构造一个队列,并设置两个指向,head指向队首,tail指向队尾,初始状态是head与tail指向同一位置(队列为空) 队列有两个操作:入队与出队。 1.入队 阅读全文
posted @ 2017-08-26 22:26 T~Z 阅读(252) 评论(0) 推荐(0) 编辑
  2017年8月24日
摘要: 快速排序是目前平均性能最好的排序方式,被作为数组排序首选。 基本思想:将一个数组分为左右两部分以q为界,左部分小于q,右部分大于q;接下来分治策略,将左右两部分继续按照这个规则划分,直至不能划分,该数组便排序完毕。 关键:如何划分左右部分?q该取哪个值?(恕我愚钝,算法导论上的做法没看懂,于是逼着自 阅读全文
posted @ 2017-08-24 23:20 T~Z 阅读(191) 评论(1) 推荐(0) 编辑
  2017年8月18日
摘要: 堆排序虽然在性能效率上不及快速排序,但由于优先队列的使用十分广泛,所以堆排序依然是基础中比较重要的部分。 堆的实质其实是一个数组,不过其逻辑结构则是以一颗近似完全二叉树的形式存在的,如图 堆(最大堆)的性质: 1.父结点一定大于子节点(最小堆相反) 2.以每个子结点为根结点的树也是堆 由于近似完全二 阅读全文
posted @ 2017-08-18 16:00 T~Z 阅读(482) 评论(0) 推荐(0) 编辑
  2017年8月16日
摘要: 问题描述:这个问题源自《算法导论》中基础部分分治策略讲解,即给出一支股票近15天价格表,要求求出买进卖出获得的最大值及买进时刻卖出时刻。 可百度面试问的没那么简单,要求求出最大收益及次大收益(包括买进卖出时刻),且手上最多只能有一支股票即求出的最大子数组、次大子数组不能重合。(当时直接懵逼)(这次只 阅读全文
posted @ 2017-08-16 11:17 T~Z 阅读(1005) 评论(0) 推荐(0) 编辑
  2017年8月10日
摘要: 问题描述:给出几种面值的硬币,要求用这几种硬币找零出所给零钱数,用的硬币数要最少。 过去我们用过贪心法解决此类问题,包括本人在百度面试时,也是用的贪心法(面试官对这个解答不满意),贪心法只适用于硬币特殊的情况下(1,3,5),如果现在硬币的面值为10,7,3,1,要求给出21的找零方案,那么贪心会给 阅读全文
posted @ 2017-08-10 20:00 T~Z 阅读(531) 评论(0) 推荐(0) 编辑
  2017年7月7日
摘要: 题意:南北两侧各有200个房间,两侧房间之间有一个走廊 现在需要把桌子从这400个房间之中搬进搬出,每一张桌子需要10分钟时间,如果走廊因为有桌子搬运而占用,则需等待,求共需多少时间(分钟)将桌子搬完 分析:由于走廊跨越200个房间,设置数组大小为200的数组,如从x出发搬到y,则把x到y的走廊全部 阅读全文
posted @ 2017-07-07 11:20 T~Z 阅读(146) 评论(0) 推荐(0) 编辑