All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0201_0300.s0240_search_a_2d_matrix_ii.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0201_0300.s0240_search_a_2d_matrix_ii;

// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Binary_Search #Matrix
// #Divide_and_Conquer #Data_Structure_II_Day_4_Array #Binary_Search_II_Day_8
// #Big_O_Time_O(n+m)_Space_O(1) #2022_07_04_Time_7_ms_(86.73%)_Space_58.4_MB_(9.95%)

/**
 * 240 - Search a 2D Matrix II\.
 *
 * Medium
 *
 * Write an efficient algorithm that searches for a `target` value in an `m x n` integer `matrix`. The `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.
 *
 * **Example 1:**
 *
 * ![](https://assets.leetcode.com/uploads/2020/11/24/searchgrid2.jpg)
 *
 * **Input:** matrix = \[\[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
 *
 * **Output:** true 
 *
 * **Example 2:**
 *
 * ![](https://assets.leetcode.com/uploads/2020/11/24/searchgrid.jpg)
 *
 * **Input:** matrix = \[\[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
 *
 * **Output:** false 
 *
 * **Constraints:**
 *
 * *   `m == matrix.length`
 * *   `n == matrix[i].length`
 * *   `1 <= n, m <= 300`
 * *   -109 <= matrix[i][j] <= 109
 * *   All the integers in each row are **sorted** in ascending order.
 * *   All the integers in each column are **sorted** in ascending order.
 * *   -109 <= target <= 109
**/
public class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int r = 0;
        int c = matrix[0].length - 1;
        while (r < matrix.length && c >= 0) {
            if (matrix[r][c] == target) {
                return true;
            } else if (matrix[r][c] > target) {
                c--;
            } else {
                r++;
            }
        }
        return false;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy