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

ตัวเลขใหญ่ใน Python


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

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

1 3 2
4 6 5
1 5 7

จากนั้นผลลัพธ์จะเป็น 2 เนื่องจาก 6 และ 7 ถูกต้อง

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

  • mat :=เมทริกซ์

  • r_maxes :=ทำรายการองค์ประกอบสูงสุดของเสื่อแต่ละแถว

  • c_maxes :=ทำรายการองค์ประกอบสูงสุดของแต่ละคอลัมน์ของเสื่อ

  • a :=รายการใหม่

  • สำหรับ r ในช่วง 0 ถึงจำนวนแถว - 1 ทำ

    • สำหรับ c ในช่วง 0 ถึงจำนวนคอลัมน์ - 1 ทำ

      • v :=mat[r, c]

      • ถ้า r_maxes[r] คือ v และ c_maxes[c] คือ v ดังนั้น

        • ใส่ v ต่อท้าย a

  • ขนาดส่งคืนของ a

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

ตัวอย่าง

class Solution:
   def solve(self, matrix):
      mat = matrix
      trans_mat = list(zip(*matrix))
      print(mat, trans_mat)
      r_maxes = [max(row) for row in mat]
      c_maxes = [max(t_row) for t_row in trans_mat]
      a = []
      for r in range(len(mat)):
         for c in range(len(trans_mat)):
            v = mat[r][c]
            if (r_maxes[r], c_maxes[c]) == (v, v):
               a.append(v)
      return len(a)
ob = Solution()
matrix = [
   [1, 3, 2],
   [4, 6, 5],
   [1, 5, 7]
]
print(ob.solve(matrix))

อินพุต

[[1, 3, 2], [4, 6, 5], [1, 5, 7]]

ผลลัพธ์

2