นี่เป็นคำถามเกี่ยวกับการแก้ไขระยะทางและเป็นเรื่องง่ายมาก ฉันแค่สมองค่อนข้างตายในเรื่องนี้และไม่สามารถคิดออก
รับชุดตัวเลขเช่น
[3, 1, 1, 1]
คนเราจะเปลี่ยนตัวเลขทั้งหมดให้เป็นตัวเลขเดียวกันได้อย่างมีประสิทธิภาพมากที่สุดอย่างไรด้วยจำนวน "การเคลื่อนไหว" ขั้นต่ำ โดย "ย้าย" หมายถึงการเพิ่มหรือลบออกจากตัวเลข
ในตัวอย่างข้างต้นการเคลื่อนไหวที่มีประสิทธิภาพมากที่สุดคือ:
[1, 1, 1, 1]
สิ่งนี้จะต้องมี 2 การเคลื่อนไหวลดจำนวนแรกสองครั้ง
ฉันไม่สามารถหาวิธีที่ดีที่สุดในการค้นหาสิ่งนี้ได้เนื่องจากมีอาร์เรย์ที่ใหญ่กว่าของตัวเลขนับร้อย
ตอนแรกฉันพยายามคำนวณจำนวนเฉลี่ยที่ถูกปัดเศษ (ผลรวมของหารด้วยความยาวทั้งหมด) จากนั้นลดลงเป็นค่าเฉลี่ยที่คำนวณ แต่ตัวอย่างข้างบนแตกนี้ต้องใช้การเคลื่อนที่ 4 ครั้งแทน 2
ฉันคิดว่าฉันสามารถคิด:
- เฉลี่ย,
- โหมด
- ค่ามัธยฐาน
และรับระยะทางแก้ไขของแต่ละคนเลือกระยะทางขั้นต่ำ อย่างไรก็ตามฉันไม่แน่ใจว่าสิ่งนี้จะถูกต้องในทุก ๆ ครั้งเดียว ฉันจะรู้ได้อย่างไร