โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)เรียงค่าทั้งหมดในลิสต์จากน้อยไปมาก สำหรับกรณีที่จำนวนสมาชิกเป็นเลขคี่ ให้เลือกค่าตรงกลาง สำหรับกรณีที่จำนวนสมาชิกเป็นเลขคู่ ให้หาค่าเฉลี่ยเลขคณิตของสองค่ากลาง ข้อนี้รับเฉพาะลิสต์ที่ไม่ว่างเปล่าเท่านั้น
ให้เขียนฟังก์ชัน median_number(numbers)
อินพุต
numbers: ลิสต์ที่ไม่ว่างเปล่าของค่า
เอาต์พุต
คืนค่ามัธยฐานเป็นตัวเลข ซึ่งอาจลงท้ายด้วย .5 ได้
เงื่อนไข
1 ≤ ความยาวลิสต์ ≤ 100,000 แต่ละค่าจะเป็นจำนวนเต็มระหว่าง −1,000,000,000 ถึง 1,000,000,000
ตัวอย่าง
อินพุต:
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
อินพุต:
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 กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน