หมุน Array ใน Python
สมาชิกที่ออกจากด้านหนึ่งจะกลับเข้าที่อีกด้าน
หมุน Array ใน Python คืออะไร?
สมาชิกที่ออกจากด้านหนึ่งจะกลับเข้าที่อีกด้าน
เลื่อนสมาชิกแบบวนรอบ k ตำแหน่ง
ควรใช้เมื่อใด?
- ทำความเข้าใจอัลกอริทึมและโครงสร้างข้อมูล
- สังเกตแต่ละขั้นตอนและกรณีขอบ
- เปรียบเทียบเวลาและหน่วยความจำ
โค้ดตัวอย่าง
main.py
def rotate_right(values, steps):
if not values:
return []
steps %= len(values)
return values[-steps:] + values[:-steps]
print(rotate_right([1, 2, 3, 4, 5], 2))
ผลลัพธ์ที่คาดหวัง
[4, 5, 1, 2, 3]
หลักการทำงาน
ปรับ k ตามความยาวแล้วรวมสอง slice ใช้เวลาและหน่วยความจำ O(n)
เปลี่ยนค่าและรันโปรแกรมด้วย คอมไพเลอร์ Python ออนไลน์ของ CodeUtility โดยไม่ต้องติดตั้ง Python
แบบฝึกหัด
ลองเปลี่ยน input และทดสอบกรณีขอบก่อนใช้ชุดข้อมูลที่ใหญ่ขึ้น
- ทดสอบ input ว่าง หนึ่งสมาชิก และค่าซ้ำ
- แสดงสถานะหลังแต่ละขั้นตอน
- เปรียบเทียบประสิทธิภาพกับวิธีอื่น