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

ค้นหาองค์ประกอบที่แตกต่างกันซึ่งพบได้ทั่วไปในแถวทั้งหมดของเมทริกซ์ใน Python


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

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

13 2 15 4 17
15 3 2 4 36
15 2 15 4 12
15 26 4 3 2
2 19 4 22 15

ผลลัพธ์ที่ได้จะเป็น [2,4,15]

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

  • กำหนดฟังก์ชัน sortRows() นี่จะใช้เมทริกซ์

  • n :=จำนวนแถว

  • สำหรับผมอยู่ในช่วง 0 ถึง n ทำ

    • จัดเรียงรายการเมทริกซ์[i]

  • ในวิธีหลัก ให้ทำดังต่อไปนี้ −

  • n :=จำนวนแถว

  • sortRows(เมทริกซ์)

  • current_idx :=รายการขนาด n เติม 0

  • สำหรับผมอยู่ในช่วง 0 ถึง n ทำ

    • current_idx[i] :=0

  • ฉ :=0

  • ในขณะที่ current_idx[0]

    • ค่า :=matrix[0, current_idx[0]]

    • ปัจจุบัน :=จริง

    • สำหรับผมอยู่ในช่วง 1 ถึง n ทำ

      • ในขณะที่ (current_idx[i]

        • current_idx[i] :=current_idx[i] + 1

      • ถ้า matrix[i, current_idx[i] - 1] ไม่เหมือนกับค่า ดังนั้น

        • ปัจจุบัน :=เท็จ

      • ถ้า current_idx[i] เหมือนกับ n แล้ว

        • ฉ :=1

        • ออกจากวง

    • ถ้า present ไม่ใช่ศูนย์ แล้ว

      • ค่าที่แสดง

    • ถ้า f เท่ากับ 1 แล้ว

      • ออกจากวง

    • current_idx[0] :=current_idx[0] + 1

ตัวอย่าง

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

MAX =100def sortRows(matrix):n =len(matrix) สำหรับ i ในช่วง (0, n):matrix[i].sort();def find_common(matrix):n =len(matrix) sortRows( เมทริกซ์) current_idx =[0] * n สำหรับ i ในช่วง (0, n):current_idx[i] =0 f =0 while(current_idx[0]  

อินพุต

<ก่อน>[[13, 2, 15, 4, 17],[15, 3, 2, 4, 36],[15, 2, 15, 4, 12],[15, 26, 4, 3, 2 ],[2, 19, 4, 22, 15]]

ผลลัพธ์

2, 4, 15,