您的位置:首页 > Web前端

剑指offer:二维数组的查找

2015-07-13 16:58 411 查看
题目:在一个二维数组中,每一行都按照从左到右的递增顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。
分析:数组如下所示


方式大致如下:


选择的应该是右上角或者左下角。
// 二维数组matrix中,每一行都从左到右递增排序,

// 每一列都从上到下递增排序

bool Find(int* matrix, int rows, int columns, int number)

{

bool found = false;


if(matrix != NULL && rows > 0 && columns > 0)

{

int row = 0;

int column = columns - 1;

while(row < rows && column >=0)

    {

if(matrix[row * columns + column] == number)

{

found = true;

break;

}

else if(matrix[row * columns + column] > number)

-- column;

else

++ row;

}

}


return found;

}

[/code]

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: