1.迷宫问题
对于走迷宫,人们提出过很多计算机上的解法。深度优先搜索、广度优先搜索是使用最广的方法。生活中,人们更愿意使用“紧贴墙壁,靠右行走”的简单规则。
下面的代码则采用了另一种不同的解法。它把走迷宫的过程比做“染色过程”。假设入口点被染为红色,它的颜色会“传染”给与它相邻的可走的单元。这个过程不断进行下去,如果最终出口点被染色,则迷宫有解。
package newExa...
分类:
编程语言 时间:
2014-05-12 14:50:44
阅读次数:
391
做一个题目时,看见解法中使用了优先队列,http://hawstein.com/posts/3.6.html
。颇为好奇,找资料学习了一下,顺便做个摘要。c++的用法:转自:http://blog.chinaunix.net/uid-21712186-id-1818266.html#include
...
分类:
编程语言 时间:
2014-05-12 10:17:49
阅读次数:
421
输入n个数,找出其中最小的k个数。例如输入4,5,1,6,2,7,3,8
这8个数,则最小的4个数是1,2,3,4.解法一:O(n)的算法,只有当我们可以修改输入数组时可用解法二:O(nlogk)的算法,特别适合处理海量数据
分类:
其他好文 时间:
2014-05-11 12:58:51
阅读次数:
242
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。有两种解法:第一种方法是基于快速排序算法的原理,边排序边判断是否符合输出条件。这种方法的代码我因为没有保存,在电脑蓝屏之后全...
分类:
其他好文 时间:
2014-05-10 22:45:25
阅读次数:
291
这个题比刚才那个更难。如果没做过上一个,这个简直是无情。
先想一个笨笨的解法,怎样确定一个矩形呢?找一个左上角,然后每行的看能延伸到什么位置,注意随着行数的增加,列数是只能变短,不能变长。想一下也知道这种方法的复杂度有多高,超时无疑。
如果刚好做了这个求柱形的题目,会不会收到启发呢。将矩阵中的每一个1都看做是一个小的正方形,在每一列,连续的1就构成了一个柱体,求一连串这样的柱体围成的最...
分类:
其他好文 时间:
2014-05-10 04:35:34
阅读次数:
286
http://blog.unieagle.net/category/develop/%E7%AE%97%E6%B3%95/
分类:
其他好文 时间:
2014-05-10 01:01:59
阅读次数:
223
很难的问题,数组线性时间。
属于我之前说的解法的借助辅助空间。给定两个柱子,他们之间的面积由什么确定呢?没错,他们之间的距离和他们之间最矮的那个柱子的高度。我们并不知道这个柱子在什么位置,所以...
分类:
其他好文 时间:
2014-05-09 22:57:18
阅读次数:
404
题意:有一个强大的弓弩,可以射穿所有障碍,给n(n
解法:离散化所有的墙段点,以出发点为一端和每个墙端为另一端(加长到足够长),然后分别计算和多少线段非严相交。线段非严格相交的判定是:
1、严格相交(叉积判断)
2、点在线段上,这时叉积等于0并且点在线段之间
代码:/**************************************************...
分类:
其他好文 时间:
2014-05-09 21:49:44
阅读次数:
265
全排列可以用深搜的方式求解。解答树如下:
可以运行的代码:
import java.util.ArrayList;
import java.util.List;
public class Perm {
public static Integer[] data = {19, 37, 61, 79, 89};
public static int depth;
public...
分类:
其他好文 时间:
2014-05-09 21:09:51
阅读次数:
293
《具体数学》通过三个例子来讲递归,分别是:HanoiTower(汉诺塔)、LinesinthePlane(平行中的直线)、JosephusCircle(约瑟夫环问题)这三个例子一直被数学家们反复研究;已知解法都使用递归,大问题化为小问题;都可以用计算机程序来求解;我最近因为考试忙的其实也没看几页,就先把..
分类:
其他好文 时间:
2014-05-09 06:56:00
阅读次数:
270