- 博客(33)
- 收藏
- 关注
原创 泛型(一)(浅层介绍---好处)
泛型技术的由来:集合中可以存储任意类型对象,但是在取出时,如果要使用具体对象的特有方法时,需要进行向下转型,如果存储的对象类型不一致,在转型过程中就会出现ClassCastException异常。这样就给程序带来了不安全性。在jdk1.5以后就有了解决方案——泛型技术:在存储元素时,就不允许存储不同类型的元素。存储了就编译失败。 所以就需要在存储元素时,在容器上明确具体的元素类型,这其
2016-03-23 15:08:33 432
原创 HDOJ1195 Open the Lock
题意:给俩个四位数,第一个变到到第二个最少需要多少步每一个只能 每一位+-1(一次操作一个数 不能同时操作不同位)1-1=0则变9 9+1=10则变1或者相邻俩位数字交换 第一位和第四位不算相邻位解题思路:将四位数转换成四位数组,每一个四位数对应一个位置,这样可以用广搜寻找俩个位置之间的最短路径广搜原理点此import java.util.LinkedList;
2016-03-23 14:58:27 306
原创 HDOJ1240 Asteroids!
题意:首先一个字符Start N 1接下来是一个char[N] [N] [N]的三维数组模型 每个地方不是X 就是OX表示不可走 O表示可走每次只能走同一层前后左右 不同层上下接下来是俩行(起点 终点) 每行三个数0~N-1 分别表示 列 行 层最后一个END字符为一个实例求起点到终点的最短时间 每移动一个加1 能到输出N 最短时间不能到
2016-03-23 14:46:35 408
原创 BigInteger BigDecimal(浅层运用)
BigInteger不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。不可变的任意精度的整数。所有操
2016-03-23 11:53:38 398
原创 集合(Collection解析 Set List Map三大集合运用)
集合的概念: 集合是包含多个对象的简单对象,所包含的对象称为元素。集合里面可以包含任意多个对象,数量可以变化;同时对对象的类型也没有限制,也就是说集合里面的所有对象的类型可以相同,也可以不同。集合与数组的特点对比:集合:数量不限、类型不限数组:定长、类型单一“集合框架”由一组用来操作对象的接口组成,不同接口描述不同类型的组数据存储结构分类:
2016-03-21 13:10:59 7669
原创 HDOJ1026 Ignatius and the Princess I
题意:从(0,0)走到(n-1,m-1)的最短时间,只有数字和.号能走,有数字的地方说明有怪,需要花费这个数字的时间输入格式如:5 6.XX.1...X.2.2...X....XX.XXXXX.能走到输出格式如下显示具体的走法:It takes 13 seconds to reach the target position, let me show you
2016-03-12 18:19:15 288
原创 HDOJ1175 连连看
分析:1 字符不同,消不了2 转折次数>2,消不了这俩点进行剪枝本题运用深搜,深搜原理点此import java.util.Scanner;public class Main{ static int n,m; static Chess[][] chess; public static void main(String[] args) {
2016-03-11 20:43:52 339
原创 HDOJ1010 Tempter of the Bone
问题:小狗能否从起点S,经过时间T,恰好到达终点D。条件:1、Therefore the doggie had to arrive at the door on exactly the T-th second.(小狗必须在T时刻准时到达出口)2、In every second, he could move one block to one of the upper, low
2016-03-11 20:33:56 290
原创 HDOJ1285 确定比赛名次
本题具有特定关系的排序,使用拓扑排序法,话不多说,上代码(java)package cn.hncu.search;import java.util.Scanner;public class TopologySort { static Scanner sc; static int[][] matrix; static int[] degree; static boolean[
2016-03-11 17:57:05 356
原创 拓扑排序(解析)
拓扑排序 通常我们把计划、施工过程、生产流程、程序流程等都当成一个工程,一个大的工程常常被划分成许多较小的子工程,这些子工程称为活动。这些活动完成时,整个工程也就完成了。 例如,计算机专业学生的课程开设可看成是一个工程,每一门课程就是工程中的活动,下图给出了若干门所开设的课程,其中有些课程的开设有先后关系,有些则没有先后关系,有先后关系的课程必须按先后关系开设,如开设数据结构课程
2016-03-11 17:46:12 744
原创 BFS(广搜) 倒油问题
给定三个体积为12 ,8 ,5的木桶,桶内装有12 ,0,0的油,怎么样利用这三个桶倒出6体积的油。package cn.hdu;public class Bfs { public static void main(String[] args) { int[] a={12,0,0}; int[] volume={12,8,5}; searchBFS(volume,new
2016-03-11 17:10:17 925
原创 HDOJ1241 Oil Deposits
题意:每一个@的九宫格有其他@字符,说明这几个@字符是连通的,每一块不连通的@字符集是一块油田,问有几块?本题利用BFS广搜,废话不多说,上代码(java):package cn.hncu.search;import java.util.Scanner;public class SearchBFS { public static void main(String[] args)
2016-03-11 17:02:15 614
原创 BFS(广度优先遍历搜索解析)
3.2 广度优先搜索(BFS)广度优先搜索思想广度优先搜索遍历类似于树的按层次遍历。对于无向连通图,广度优先搜索是从图的某个顶点v0出发,在访问v0之后,依次搜索访问v0的各个未被访问过的邻接点w1,w2,…。然后顺序搜索访问w1的各未被访问过的邻接点,w2的各未被访问过的邻接点,…。即从v0开始,由近至远,按层次依次访问与v0有路径相通且路径长度分别为1,2,…的顶点,直至连
2016-03-11 16:49:05 5350 1
原创 DFS(深搜) 倒油问题
给定三个体积为12 ,8 ,5的木桶,桶内装有12 ,0,0的油,怎么样利用这三个桶倒出6体积的油。package cn.hdu;public class Dfs { //深搜 private static void searchDFS(int[] a, int[] volume,Parent parent) { //记录路径 parent=new Parent(a, pa
2016-03-09 14:01:56 1108
原创 HDOJ2102 A计划
本题涉及搜索,可用BFS(深搜)解决博主有一篇关于 深搜原理 的博客,不知道原理的可以去看看,懂深搜看下面代码(java):import java.util.Scanner; class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in);
2016-03-09 13:55:28 628
原创 HDOj1016 Prime Ring Problem
题意:给一个1~20之间的数n,找到一条俩俩数字相邻 相加结果是素数的圈,如n=6时:这6个数可找到一条1+4=5,4+3=7,3+2=5,2+5=7,5+6=11,6+1=7的圈本题不难,要了解BFS(深搜)的原理,从1开始遍历下去,便会反馈结果。博主有一篇关于 深搜原理 的博客,不明白的可以去看看,明白深搜即看下面代码(java):import java.util.Scanner
2016-03-09 13:41:24 505
原创 DFS(深度优先遍历搜索解析)
深度优先搜索思想 深度优先搜索遍历类似于树的先序遍历。假定给定图G的初态是所有顶点均未被访问过,在G中任选一个顶点i作为遍历的初始点,则深度优先搜索递归调用包含以下操作:(1)访问搜索到的未被访问的邻接点;(2)将此顶点的visited数组元素值置1;(3)搜索该顶点的未被访问的邻接点,若该邻接点存在,则从此邻接点开始进行同样的访问和搜索。
2016-03-09 13:30:17 4827 1
原创 归并排序(解析及代码实现)
归并排序常用与排序组合俩个有序的数列,使之变成一个整体有序的序列对于俩个有序的序列,只需按顺序将第一个进行比较,大/小者按排序要求放在一个新得数列中对于一个无序的数列用归并排序时需要将整个数列分解成一个个有序的数列(分解为1)运用归并,使之有序,虽然归并排序的时间复杂度与快排一样是属于O(n*logn)级,但是需要额外空间复杂度O(n)
2016-03-07 21:31:37 530
原创 快速排序(解析及代码实现)
//快速排序的时间复杂度为n*logn,常用来处理无序的大量数据(越无序效率越高)//第一种//取每一段数据的第一个数作为枢轴,保存,并空出位置,纪为a[empty],empty=0;//从右开始找j=a.length-1 --找到一个数a[j]小于枢轴,将其移动到a[empty]处,empty=j;//开始从左开始找 i=1 ++ 找到一个数a[i]大于枢轴,将其移动到a[emp
2016-03-07 15:36:37 354
原创 希尔排序(解析及代码实现 结合冒泡,选择,二分插入)
希尔排序并非是一种单纯的排序方法,而是一种对其他排序方法进行优化处理对于冒泡,选择,插入三种排序方法,所用的时间复杂度都是O(n^2)这对于大量数据来说太慢,希尔排序,排序方法用的是这三类,但降低了n,这使得排序速度大大加快希尔是将整个数据划分成gap组,分别对这gap组进行排序一次排序后,虽然整体还是无序的,但在各组是有序的,其整体相对之前较有序并再对整体划分gap-组,使之
2016-03-07 15:26:17 377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人