물음표 살인마의 개발블로그

알고리즘 문제/Leetcode

240. Search a 2D Matrix II

BEstyle 2023. 1. 17. 06:39

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.

 

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:

  • 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

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        for nums in matrix:
            start=0
            end=len(nums)-1
            while start<=end:
                mid = (start+end)//2
                if nums[mid]==target:
                    return True
                elif nums[mid]<target:
                    start = mid+1
                elif nums[mid]>target:
                    end = mid -1
        return False

'알고리즘 문제 > Leetcode' 카테고리의 다른 글

2181. Merge Nodes in Between Zeros  (0) 2023.01.17
160. Intersection of Two Linked Lists  (0) 2023.01.17
349. Intersection of Two Arrays  (0) 2023.01.12
278. First Bad Version  (0) 2023.01.12
268. Missing Number  (0) 2023.01.12