Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาค่าเป้าหมายภายในเมทริกซ์ที่กำหนดหรือไม่ใน Python


สมมติว่าเรามีเมทริกซ์ 2 มิติ โดยที่แต่ละแถวและคอลัมน์ถูกจัดเรียงตามลำดับที่ไม่ลดลง เราต้องตรวจสอบว่าเป้าหมายที่ระบุอยู่ภายในนั้นหรือไม่

ดังนั้นหากอินพุตเป็นแบบ

2 4 30
3 4 31
6 6 32

และเป้าหมาย =31 แล้วผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • col :=ขนาดคอลัมน์ของเมทริกซ์ - 1
  • สำหรับฉันในช่วง 0 ถึงขนาดแถวของเมทริกซ์ ทำ
    • ในขณะที่ matrix[i, col]> target และ col>=0, do
      • col :=col - 1
    • ถ้า matrix[i, col] เหมือนกับเป้าหมาย แล้ว
      • คืนค่า True
  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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

อินพุต

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

ผลลัพธ์

True