Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm giá trị đích bên trong ma trận đã cho hoặc không bằng Python

Giả sử chúng ta có một ma trận 2D, trong đó mỗi hàng và cột được sắp xếp theo thứ tự không giảm, chúng ta phải kiểm tra xem mục tiêu đã cho có hiện diện bên trong nó hay không.

Vì vậy, nếu đầu vào giống như

2 4 30
3 4 31
6 6 32

Và target =31, thì kết quả đầu ra sẽ là True

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • col:=kích thước cột của ma trận - 1
  • đối với tôi trong phạm vi từ 0 đến kích thước hàng của ma trận, hãy thực hiện
    • while ma trận [i, col]> target and col> =0, do
      • col:=col - 1
    • nếu ma trận [i, col] giống với mục tiêu, thì
      • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution:
   def solve(self, matrix, target):
      col = len(matrix[0]) - 1
      for i in range(len(matrix)):
         while matrix[i][col] > target and col >= 0:
            col = col - 1
         if matrix[i][col] == target:
            return True
      return False
ob = Solution()
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ]
target = 31
print(ob.solve(matrix, target))

Đầu vào

matrix = [
[2, 4, 30],
[3, 4, 31],
[6, 6, 32]]
target = 31

Đầu ra

True