2018.3.23
JAVA实现之后再学习一下C++写法
/** * * @author ChopinXBP * 在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。请完成一个函数, * 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 * * */ #include "stdafx.h" /* 最佳解法: 利用二维数组由上到下,由左到右递增的规律, 那么选取右上角或者左下角的元素a[row][col]与target进行比较, 当target小于元素a[row][col]时,那么target必定在元素a所在行的左边,即col--; 当target大于元素a[row][col]时,那么target必定在元素a所在列的下边,即row++; */ # if 0 class Solution{ public: bool Find(int target, vector<vector<int>> array){ if (array.empty()) return false; //养成进门判定的好习惯 int _length = array.size(); for (int i = 0; i < _length; i++){ if (array[i].empty())continue; //判定数组空好习惯 else if (target >= array[i][0]){ if(target <= array[i][array[i].size() - 1]){ for (int j = array[i].size()-1 ; j >= 0; j--) { if (target == array[i][j])return true; else if (target > array[i][j])break; } } else{ continue; } } else{ return false; } } return false; } }; #endif