g0201_0300.s0240_search_a_2d_matrix_ii.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
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