notes/OJ notes/pages/Leetcode Search-A-2D-Matrix-II.md
2022-09-03 15:06:04 +08:00

1.4 KiB

Leetcode Search-A-2D-Matrix-II

2022-09-03 14:57

Algorithms:

#algorithm #divide_and_conquer

Data structures:

#DS #array

Difficulty:

#coding_problem #difficulty-medium

Additional tags:

#leetcode

Revisions:

N/A


Problem

Write an efficient algorithm that searches for a value target in an m x n integer matrix 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.

Examples

Example 1:

**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:

**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

Thoughts

[!summary] This is a #divide_and_conquer problem.

It's divide and conquer, because every time we do a action, the problem is smaller.

Start from the top-right, (alternatively, bottom-left), because walking left makes the number smaller, and down makes the number bigger.

Solution