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

Python – จัดเรียงเมทริกซ์ตามขนาด Subarray สูงสุด Sum


เมื่อจำเป็นต้องจัดเรียงเมทริกซ์ตามผลรวมสูงสุดของอาร์เรย์ย่อยขนาด k จะมีการกำหนดวิธีการที่ใช้เมธอด 'amx' และ 'sum' และวนซ้ำในรายการ

ตัวอย่าง

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน

def sort_marix_K(my_list):
   return max(sum(my_list[index: index + K]) for index in range(len(my_list) - K))

my_list = [[51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8], [5, 4, 36, 26, 26]]

print("The list is :")
print(my_list)

K = 4
print("The value of K is ")
print(K)
my_list.sort(key=sort_marix_K)

print("The resultant list is :")
print(my_list)

ผลลัพธ์

The list is :
[[51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8], [5, 4, 36, 26, 26]]
The value of K is
4
The resultant list is :
[[5, 4, 36, 26, 26], [51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8]]

คำอธิบาย

  • มีการกำหนดเมธอดชื่อ 'sort_matrix_K' ซึ่งรับรายการเป็นพารามิเตอร์

  • มันวนซ้ำผ่านรายการและกำหนดดัชนีและรับผลรวมของดัชนีเฉพาะ และรับค่าสูงสุดของค่าเหล่านี้

  • ส่งคืนเป็นเอาต์พุต

  • นอกเมธอด รายการของรายการถูกกำหนดและแสดงบนคอนโซล

  • ค่าของ K ถูกกำหนดและแสดงบนคอนโซล

  • รายการจะถูกจัดเรียงตามวิธีการที่กำหนดไว้ก่อนหน้านี้

  • เอาต์พุตจะแสดงบนคอนโซล