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

โปรแกรมค้นหาองค์ประกอบที่ตัดกันที่เล็กที่สุดของแต่ละแถวในเมทริกซ์ใน Python


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

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

2 3 5
5 10 10
1 3 5

แล้วผลลัพธ์จะเป็น 5

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

  • หากเมทริกซ์ว่างเปล่า

    • กลับ -1

  • first :=ชุดใหม่จากแถวแรกของเมทริกซ์

  • สำหรับแต่ละแถวในเมทริกซ์ ทำ

    • first :=ตัดชุดขององค์ประกอบของแถวก่อน

    • ถ้าว่างไว้ก่อน

      • กลับ -1

  • ผลตอบแทนขั้นต่ำอันดับแรก

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

ตัวอย่าง

class Solution:
   def solve(self, matrix):
      if not matrix:
         return -1
      first = set(matrix[0])
      for row in matrix:
         first &= set(row)
         if not first:
            return -1
      return min(first)
ob1 = Solution()
matrix = [
   [2, 3, 5],
   [5, 10, 10],
   [1, 3, 5]
]
print(ob1.solve(matrix))

อินพุต

matrix = [
[2, 3, 5],
[5, 10, 10],
[1, 3, 5] ]

ผลลัพธ์

5