算法
文章平均质量分 69
AE86Jag
弥赛亚被世人误解
展开
-
顺时针打印二维数组
一、题目 要求:输入一个数组,从外到里顺时针打印数组中的元素,例如输入矩阵 [[1,2,3,4][5,6,7,8][9,10,11,12]] 输出 1,2,3,4,8,12,11,10,9,5,6,7 二、思路 按圈打印,记录每圈的起始位置(行号、列号),特殊行或列需要判断防止出现空指针异常。 三、代码public class Matrix { private Array...转载 2018-02-27 20:43:33 · 553 阅读 · 0 评论 -
动态规划解决数塔问题
一、题目 如图所示,将一些数字排成数塔的形状,其中第一层有一个数字,第二层有两个数字.……第n层有n个数子。现在要从第一层走到第n层,每次只能走向下一层的接连两个数字的其中一个,问:最后将路径上所有数字相加后得到的和最大是多少? 二、动态规划解法 设ele[i][j]表示第i层的第j个元素,max[i][j]表示从第i层第j个元素出发的到达最底层的所有路径中能得到的最大和。那么max[i...原创 2018-03-08 21:44:49 · 1511 阅读 · 0 评论 -
根据进栈序列判断出栈序列是否合法
一、出栈序列判断 问题:按1、2、3、4、5进栈,出栈是否能得到1、2、3、4、5?是否能得到3、4、5、1、2? 答案:可以得到1、2、3、4、5,只要1进栈,1出栈,2进栈,2出栈以此类推即可得到1、2、3、4、5;但是不能得到3、4、5、1、2(为什么?)。 二、算法思想 如果使用暴力破解的方法,n个数的进栈序列,可以有C(2n,n)/(n+1)个(卡特兰(Catal...原创 2018-03-01 19:09:19 · 4893 阅读 · 1 评论 -
最大子序列和
本博客部分摘选自《算法笔记》(胡凡 曾磊主编,机械工业出版社) 一、动态规划 动态规划(Dynamic programming,简称DP)是把原问题分解为相对简单的子问题的方式求解复杂问题的方法。常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量 二、最大子序列和 如果该问题...转载 2018-03-02 14:24:41 · 1527 阅读 · 1 评论