Java
文章平均质量分 67
JoJonny
这个作者很懒,什么都没留下…
展开
-
方法重载与重写,返回类型
重载和重写的博客已经够多了,这里我们讨论一下他们的返回类型。重写: 首先是类的不能存在两个完全相同构造方法(同时不能以返回类型来重载方法相信大家都是知道滴)类中的普通成员方法可以和构造方法重名(大小写一致都不是问题),但是必须要有返回数据类型(返回void也可以)。也就是说构造方法是不能自己返回类型的,默认返回实例对象。重写的方法返回类型可以改变,但返回类型必须是父类的子类型下面这种是符合要...原创 2018-06-03 15:58:43 · 6636 阅读 · 0 评论 -
大整数乘法(Java)
先看代码再解释: public static int [] bigMulti(int a[], int b[]) { int alen = a.length;int blen = b.length; int result[] = new int[alen+blen]; for(int i = b.length - 1; i>=0; i--) { fo...原创 2018-06-06 11:46:39 · 1683 阅读 · 2 评论 -
矩阵乘法Strassen算法
这里主要是给出实现方法,至于算法的介绍,可以参考@金戈大王的介绍。下面算法是有bug的,虽然已经对一些非n*n的矩阵做出了处理,但是没有完善,当计算非n*n的矩阵是会出现数据越界的异常的。所以两个相乘的矩阵必须是n*n的。不啰嗦,下面直接贴出Java的实现方法://调用入口: public static int[][] StrassenMulti(int a [][], int b...原创 2018-06-06 17:39:58 · 901 阅读 · 0 评论 -
棋盘覆盖问题-分治法
什么是棋盘覆盖方法? 我去找其他人的解释,恰恰发现一个矛盾的地方,就是看解释比较难理解,但是看解决棋盘覆盖的过程,就很容易理解什么是棋盘覆盖问题了。所以这里就不解释了,直接给一个解决16*16的棋盘解决过程,看完过程,相信你也理解了什么是棋盘问题了。 如下:首先给出一个包含一个奇异点的16*16棋盘:第一步是将该棋盘分为四个等大的子棋盘:然后将该棋盘看做是4*4的棋盘,可以看到奇异点在...原创 2018-06-06 20:28:42 · 35241 阅读 · 23 评论 -
棋盘覆盖-分治法(代码实现)
这是棋盘覆盖的代码实现,至于原理,请参考我的上一篇博客:棋盘覆盖问题-分治法实现的效果如下:或者如下:其中0表示递归过程中标记的所有奇异点实现代码如下: //棋盘大小size, 奇异点的坐标(x,y),以及棋子初始的标记值,可随意 public static int[][] chessBoard(int size, int jx, int jy, int tag ) { if(s...原创 2018-06-06 22:15:14 · 13675 阅读 · 2 评论 -
波兰表达式(前序表达式)的计算(栈)
波兰表达式是一种命题逻辑的特殊表示法,允许从公式中删除所有的符号。例如中序表达式转换为前序表达式(波兰表达式): (2-3)*(4+5) = * - 2 3 + 4 5这里通过使用栈的方式来计算波兰表达式原理: 从表达式的尾开始遍历,遇到数值则压栈。 遇到操作符则出栈两次获得操作数,其中第一次出栈的数作为被操作数,第二次出栈的数作为操作数 ,计算这一次的子表达式的值,...原创 2018-06-08 11:24:37 · 3336 阅读 · 0 评论 -
波兰表达式 构建 表达式树
这里提供一种将波兰表达式构建成表达式树的一种方法。 二叉树的节点有三个成员:数值(或者操作符)type,左节点lnode(被操作数),右节点rnode(操作数) //借助栈将波兰表达式 构建 表达式树 public static treeNode makeupPloenTree(String postorderExpression) { Stri...原创 2018-06-08 11:30:14 · 1184 阅读 · 0 评论 -
计算表达式树
很简单,采用递归的方式来计算表达式树(二叉树)。什么是表达式树,请看例子:下面给出从根节点开始,计算表达式树的值得算法://计算表达式树 public static double caculatePloenTree(treeNode root) { if(!(root.type.equals("+") || root.type.equals("-")||root.type.eq...原创 2018-06-08 11:35:17 · 3113 阅读 · 0 评论 -
铺磁砖,给定M*N的格子,用u*v的瓷砖去铺满,有多少种铺法
首先是引用《很好的递推题:铺磁砖和走格子》的博客,下面是摘自这博客的某些内容。*题一:用1 x 1和2 x 2的磁砖不重叠地铺满N x 3的地板,共有多少种方案?样例输入:2样例输出:3博主@billhsu1024给出的答案是:先设一个f[i]表示i*3的地板铺的方法,f[1]=1;f[2]=3;i*3的地板数是这样得到的:(i-1)*3的地板比i*3的地板少的地方全铺上1*1的瓷砖,这有一种铺法...原创 2018-06-10 11:48:59 · 3542 阅读 · 0 评论