智乐活,查找一片区域

Java代码:

class A{
	int x;
	int y;
	A(int x,int y){
		this.x=x;
		this.y=y;
	}
	 public int hashCode() {
	        int result = 17;
	        result = 37 * result + x;
	        result = 37 * result +y;
	        return result;
	    }
	 public boolean equals(Object o){
	        return o instanceof A && (x == ((A)o).x)&&(y==((A)o).y);
	    }
}

public class TestA {

	static void find_connected(int[][]array,int n,int x,int y){
		if(x<0||y<0||x>=n||y>=n) return;
	    int data=array[x][y];
	    A tmp=new A(x,y);
	    Queue<A> q=new LinkedList<>();
	    ArrayList<A>list=new ArrayList<A>();
	    int flag[][]=new int[n][n];
	    flag[x][y]=1;
	    q.offer(tmp);
	    while(q.size()!=0){
	    	tmp=q.poll();
	    	list.add(tmp);
	    	x=tmp.x;
	    	y=tmp.y;
	    	if(x-1>=0 && flag[x-1][y]==0 && array[x-1][y]==data) {q.offer(new A(x-1,y));flag[x-1][y]=1;}
	    	if(y-1>=0 && flag[x][y-1]==0 && array[x][y-1]==data) {q.offer(new A(x,y-1));flag[x][y-1]=1;}
		    if(x+1<n && flag[x+1][y]==0 && array[x+1][y]==data)  {q.offer(new A(x+1,y));flag[x+1][y]=1;}
		    if(y+1<n && flag[x][y+1]==0 && array[x][y+1]==data)  {q.offer(new A(x,y+1));flag[x][y+1]=1;}
	    }
	    for(int i=0;i<list.size();i++){
	    	tmp=list.get(i);
	    	if(i!=list.size()-1)
	    	    System.out.print("("+tmp.x+","+tmp.y+")"+",");
	    	else
	    		System.out.print("("+tmp.x+","+tmp.y+")");
	    }
	}

	public static void main(String[] args) {
		int array[][]={
				{13,67,6,3,11},
				{13,13,5,11,8},
				{10,10,10,41,41},
				{2,2,10,10,33},
				{13,10,13,22,34}
				};
		find_connected(array,5,2,1);

	}

}

  

时间: 2024-08-07 10:36:58

智乐活,查找一片区域的相关文章

Excel-vlookup(查找值,区域范围,列序号,0)如何固定住列序列号,这样即使区域范围变动也不受影响

突然,发现VLOOKUP的列序列号并不会随着区域范围的改变而自动调节改变,只是傻瓜的一个数,导致V错值.所有,就想实现随表格自动变化的列序号. 方法一:在列序号那里,用函数得出永远想要的那个列在区域范围中的列数:区域范围内的目标列COLUMN值-区域范围首列COLUMN值+1 =VLOOKUP(I2,$B$2:$G$15,COLUMN($G$2)-COLUMN($B$2)+1,0) 方法二: 原文地址:https://www.cnblogs.com/Formulate0303/p/1104544

使用OpenCV查找二值图中最大连通区域

http://blog.csdn.net/shaoxiaohu1/article/details/40272875 使用OpenCV查找二值图中最大连通区域 标签: OpenCVfindCoutours 2014-10-19 22:31 2802人阅读 评论(0) 收藏 举报  分类: 图像与OpenCV(15)  版权声明:本文为shaoxiaohu原创文章,欢迎转载,请注明出处,谢谢. 上一篇博文中介绍了matlab查找最大连通区域的方法,OpenCV函数中也有类似的函数与之对应,findC

养成良好的编程风格--论二分查找的正确姿势

摘自:http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html 在学习算法的过程中,我们除了要了解某个算法的基本原理.实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度.在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度. 时间复杂度按优劣排差不多集中在: O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n) 到目前位置,似乎我学到的算法中,时间复杂度

二分查找的实现和应用汇总(转载)

转载地址:http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html 二分查找法的实现和应用汇总 在学习算法的过程中,我们除了要了解某个算法的基本原理.实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度.在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度. 时间复杂度按优劣排差不多集中在: O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n) 到目前位置

【转载】二分查找

[本文转自]http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html 在学习算法的过程中,我们除了要了解某个算法的基本原理.实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度.在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度. 时间复杂度按优劣排差不多集中在: O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n) 到目前位置,似乎我学到的算法中,时间

诳言C言语变量和数据类型

在<二进制思惟以及数据的存储>一节中讲到: 盘算机要处置的数据(诸如数字.文字.符号.图形.音频.视频等)是以二进制的方式寄存在内存中的: 我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最小的可操作单位. 我们无妨先从最复杂的整数说起,看看它是若何放到内存中去的. 变量(Variable) 理想生涯中我们会找一个小箱子来寄存物品,一来显得不那么混乱,二来便利今后找到.盘算机也是这个事理,我们需求先在内存中找一块区域,规则用它来寄存整数,并起一个好记的名字,便利今后查找.这块区域

第三章 python中的字符串

一.字符串的基本操作 所有标准的序列操作对字符串同样适用,如索引.分片.乘法.判断成员是否存在.求长度.最大值和最小值等.记住一点,字符串是不可变的. 二.字符串中重要的方法 1.find(substr[strat,end])方法:返回找到的第一个子串的最左端位置索引,如果子串不存在,返回-1.(建议在如下情况下使用该方法:当你需要知道子串的位置时.如检查子串是否存在于某个字符串,建议用in操作符).该方法还提供两个可选的位置参数,分别为起始点和结束点,表示查找的范围区域. 1 >>>

Unity3D新手引导开发手记

最近开始接手新手引导的开发,记录下这块相关的心得 首先客户端是Unity,在接手前,前面的同学已经初步完成了新手引导框架的搭建,这套框架比较简单,有优点也有缺点,稍后一一点评 我们的新手引导是由一个个强引导组成的,每个强引导都有一系列的步骤,这套框架实现的功能就是: 1.组织一个强引导(任务)所需的步骤,并可以一步一步前进 2.实现蒙版,遮罩以及高亮引导区 第一个功能比较简单,首先需要有一个新手引导管理器来管理每一个步骤,然后启动第一个步骤,只需要在每一次点击的事件处理中,通知新手引导管理器,结

读书笔记-HBase in Action-第三部分应用-(2)GIS系统

本章介绍用HBase存储.高效查询地理位置信息. Geohash空间索引 考虑LBS应用中常见的两个问题:1)查找离某地最近的k个地点:2)查找某区域内地点.如果要用HBase实现高效查找,首先要考虑的是空间局部性(Spatial Locality),即位置上相近的点得物理存储在一起.最简单的地理位置数据由两个维度组成:经度X和纬度Y,那么相对应最简单的Rowkey也可以由X和Y组成.Rowkey的有序性决定了数据首先按照经度X排序,再按照纬度Y排序,这种方式最大的问题是经度值相等的A地点和B地