您的位置:首页 > 其它

题目1384:二维数组中的查找

2015-01-31 18:42 357 查看
判断要查找的数在不在这一行的范围内,然后2分查找就行了
#include<cstdio>
#include<cstring>

int a[1111][1111];
int n,m;
int t;

bool fun(int n)
{
	int l=0,r=m-1,mid;
	while(l <= r)
	{
		mid=(l+r)/2;
		if(a
[mid] > t)
		{
			r=mid-1;
		}
		else if(a
[mid] < t)
		{
			l=mid+1;
		}
		else 
			return 1;
	}
	return 0;
}

int main()
{
	while(scanf("%d%d%d",&n,&m,&t) != EOF)
	{
		for(int i=0;i<n;++i)
		{
			for(int j=0;j<m;++j)
			{
				scanf("%d",&a[i][j]);
			}
		}
		bool flag=0;
	 	for(int i=0;i<n;++i)
	 	{
	 		if(a[i][0] <= t && a[i][m-1] >= t)
	 		{
	 			if(fun(i))
	 			{
	 				flag = 1;
	 				break;
	 			}
	 		}
	 	}
		if(flag)
			printf("Yes\n");
		else
			printf("No\n");
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: