面试题3:二维数组中的查找

原创 2015年07月08日 21:42:01

题目:在二维数组中,每行、每列的数字递增,判断一个数字是否存在

分析:从二维数组的右上角开始查找,若找到,则停止;若比该数字大,则放弃该列;若比该数字小,则放弃该行。

代码如下:

// 面试题3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#define MAXN 100

bool Find(int* matrix,int n,int m,int number)
{
	bool found = false;
	if(matrix != NULL && n > 0 && m > 0)
	{
		int row = 0;
		int column = m-1;
		
		while(row < n && column >= 0)
		{
			if(matrix[row*m + column] == number)
			{
				found = true;
				break;
			}
			else if(matrix[row*m + column] > number)
			{
				column--;
			}
			else
			{
				row++;
			}
		}
	}
	return found;
}

int main(int argc, char* argv[])
{
	int matrix[4][4]={1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
	int n,m,i,j,number;

	while(scanf("%d%d",&n,&m)!=EOF){
		scanf("%d",&number);
	bool found = Find((int*)matrix,n,m,number);
	printf("%d\n",found);
	}
	return 0;

}


面试题3:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右的顺序排序,每一列都按照从上到下递增的顺序排序。输入这样的一个数组和一个整数,判断数组中是否含有该整数。 原本思路:两个for循环判断,但这样没有考虑到题...
  • lskyne
  • lskyne
  • 2013年06月07日 10:30
  • 811

面试题3 二维数组中的查找

九度链接:http://ac.jobdu.com/problem.php?pid=1384 题目1384:二维数组中的查找 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,...
  • ChilseaSai
  • ChilseaSai
  • 2015年02月02日 22:55
  • 328

面试题3 ----二维数组中的查找

题目:         在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。...
  • wangfengfan1
  • wangfengfan1
  • 2015年07月01日 21:57
  • 408

面试题 3:二维数组中的查找

一. 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.代码请到我的代码库中...
  • dingding_12345
  • dingding_12345
  • 2017年06月27日 15:48
  • 167

[剑指Offer]二维数组中的查找

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入描述 a...
  • shakespeare001
  • shakespeare001
  • 2016年04月29日 11:24
  • 2062

面试题3:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。         ...
  • Jere_
  • Jere_
  • 2014年11月21日 23:14
  • 246

面试题3:二维数组中的查找

题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入: 输入可...
  • lvsaixia
  • lvsaixia
  • 2014年09月26日 19:15
  • 375

面试题3:二维数组的查找

public class Solution {        public boolean Find(int target, int [][] array) {         int i=0;   ...
  • ddd_1206
  • ddd_1206
  • 2017年06月14日 22:58
  • 142

面试题3:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 如: 1 3 5 7 2 ...
  • lom9357bye
  • lom9357bye
  • 2015年05月29日 13:11
  • 167

面试题3:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下的顺序排列。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析此题最直观的做法就是逐行逐列...
  • SmartBrave
  • SmartBrave
  • 2016年05月24日 16:15
  • 584
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面试题3:二维数组中的查找
举报原因:
原因补充:

(最多只允许输入30个字)