本文主要是介绍判断二维数组是否包含某数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
判断二维数组是否包含某数
题目
已知一个整数型二维数组,行和列的数值都是递增的。现在给定数值'x',判断二维数组是否包含'x'。
方法
假设二维数组如下图排列,取二维数组右上角数值和'x'比较:(1) 如果比'x'大,则这一列就剔除;(2) 如果比'x'小,则这一行就剔除。
代码
#include <vector>
#include <stdio.h>using namespace std;int raws = 3;
int cols = 4;bool find(int target, int array[][4]);int main(int argc, char *argv[])
{int target = 4;int array[][4] = {{1, 3, 5, 6},{3, 4, 7, 8},{4, 5, 8, 9}};int result = find(target, array);printf("result is :%d ",result);return result;
}bool find(int target, int array[][4])
{if(raws > 0 && cols > 0){int raw = 0;int col = cols - 1;while((raw != raws) && (col >= 0)){if(array[raw][col] == target)return true;if(array[raw][col] > target)col--;if(array[raw][col] < target)raw++;}}return false;
}
这篇关于判断二维数组是否包含某数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!