LeetCode: 74. Search a 2D Matrix
阿新 • • 發佈:2018-12-22
題目:74. Search a 2D Matrix(https://leetcode.com/problems/search-a-2d-matrix/description/)
解法:
將二維陣列看成一維陣列,元素的座標可以計算出來。此解法使用二分查詢。
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { int height = matrix.length; if(height == 0) { // in case [] return false; } int width = matrix[0].length; if(width == 0) { // in case [[]] return false; } int from = 0; int to = height * width - 1; // loop until only two elements left while (to - from > 1) { int mid = (from + to) >> 1; if (matrix[mid / width][mid % width] < target) { from = mid; } else { to = mid; } } if (from == to) { return matrix[to / width][to % width] == target; } else { return matrix[to / width][to % width] == target || matrix[from / width][from % width] == target; } } }