|
发表于 2017-11-1 02:30:12
|
显示全部楼层
本帖最后由 darian365 于 2017-11-1 02:33 编辑
假设你有一个二维矩阵,并且行列都升序排列。找出具体具体元素在军阵中的位置。代码可以参考如下。
- public class Solution {
- /**
- * @param matrix, a list of lists of integers
- * @param target, an integer
- * @return a boolean, indicate whether matrix contains target
- */
- public boolean searchMatrix(int[][] matrix, int target) {
- // write your code here
- if (matrix == null || matrix.length == 0) {
- return false;
- }
- if (matrix[0] == null || matrix[0].length == 0) {
- return false;
- }
- int row = matrix.length;
- int column = matrix[0].length;
- int start = 0;
- int end = row * column - 1;
- int mid;
- while (start + 1 < end) {
- mid = start + (end - start) / 2;
- int number = matrix[mid / column][mid % column];
- if (number == target) {
- return true;
- } else if (number < target) {
- start = mid;
- } else {
- end = mid;
- }
- }
- if (matrix[start / column][start % column] == target) {
- return true;
- } else if (matrix[end / column][end % column] == target) {
- return true;
- }
- return false;
- }
- }
复制代码
|
|