Search a 2D Matrix II

    xiaoxiao2021-03-25  124

    Description:

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

    Integers in each row are sorted in ascending from left to right. Integers in each column are sorted in ascending from top to bottom.

    问题描述:

    搜索二维矩阵I的变体,矩阵中每行元素递增,每列元素也是递增的。在矩阵中寻找目标元素。。。

    解法一:

    思路:

    我们知道左上角一定是最小元素,右下角一定是最大元素。。由此可以从左下角元素与目标元素比较, 如果target > 则去掉这列 如果target < 则去掉这行

    Code:

    public class Solution { public boolean searchMatrix(int[][] matrix, int target) { if (matrix == null || matrix.length == 0){ return false; } if (matrix[0] == null || matrix[0].length ==0){ return false; } int row = matrix.length; int col = matrix[0].length; int x = row - 1; int y = 0; while (x >= 0 && y < col){ if (target == matrix[x][y]){ return true; } else if (target > matrix[x][y]){ y++; } else if (target < matrix[x][y]){ x--; } } return false; } }
    转载请注明原文地址: https://ju.6miu.com/read-6571.html

    最新回复(0)