โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

ค่ามัธยฐานของลิสต์

หาค่ากลางของลิสต์หลังจากเรียงลำดับแล้ว

เรียงค่าทั้งหมดในลิสต์จากน้อยไปมาก สำหรับกรณีที่จำนวนสมาชิกเป็นเลขคี่ ให้เลือกค่าตรงกลาง สำหรับกรณีที่จำนวนสมาชิกเป็นเลขคู่ ให้หาค่าเฉลี่ยเลขคณิตของสองค่ากลาง ข้อนี้รับเฉพาะลิสต์ที่ไม่ว่างเปล่าเท่านั้น

ให้เขียนฟังก์ชัน median_number(numbers)

อินพุต

numbers: ลิสต์ที่ไม่ว่างเปล่าของค่า

เอาต์พุต

คืนค่ามัธยฐานเป็นตัวเลข ซึ่งอาจลงท้ายด้วย .5 ได้

เงื่อนไข

1 ≤ ความยาวลิสต์ ≤ 100,000 แต่ละค่าจะเป็นจำนวนเต็มระหว่าง −1,000,000,000 ถึง 1,000,000,000

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
numbers = [2, 8, 4, 10]

ผลลัพธ์ที่คาดหวัง:
expected = 6.0
อินพุต:
std::vector<long long> numbers = {2, 8, 4, 10};

ผลลัพธ์ที่คาดหวัง:
double expected = 6.0;
อินพุต:
long[] numbers = new long[] {2, 8, 4, 10};

ผลลัพธ์ที่คาดหวัง:
double expected = 6.0;

คำอธิบาย

ลำดับที่เรียงแล้วคือ 2, 4, 8, 10 คู่กลางคือ 4 กับ 8 เฉลี่ยได้ (4 + 8) / 2 = 6

ตัวอย่างที่ 2
อินพุต:
numbers = [9, 1, 4]

ผลลัพธ์ที่คาดหวัง:
expected = 4.0
อินพุต:
std::vector<long long> numbers = {9, 1, 4};

ผลลัพธ์ที่คาดหวัง:
double expected = 4.0;
อินพุต:
long[] numbers = new long[] {9, 1, 4};

ผลลัพธ์ที่คาดหวัง:
double expected = 4.0;

คำอธิบาย

ลำดับที่เรียงแล้วคือ 1, 4, 9 ค่ากลางคือ 4

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก