โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)คุณสามารถเลือกเหรียญจากชุดที่ให้มาได้ตามต้องการ โดยแต่ละเหรียญสามารถใช้ได้เพียงครั้งเดียว แม้จะมีเหรียญหลายเหรียญที่มีมูลค่าเท่ากันก็ตาม จงหาจำนวนเต็มบวกที่น้อยที่สุดซึ่งไม่สามารถสร้างได้จากการเลือกเหรียญใด ๆ
ให้เขียนฟังก์ชัน missing_coin_sum(coins)
อินพุต
coins: มูลค่าของเหรียญที่มีอยู่ แต่ละค่าซ้ำกันได้ หมายถึงเหรียญคนละเหรียญ
เอาต์พุต
ให้คืนค่าจำนวนเต็มบวกที่น้อยที่สุดซึ่งไม่สามารถสร้างได้
เงื่อนไข
1 ≤ จำนวนเหรียญ ≤ 200,000 แต่ละค่ามีค่าระหว่าง 1 ถึง 1,000,000,000
ตัวอย่าง
อินพุต:
coins = [1, 1, 4]
ผลลัพธ์ที่คาดหวัง:
expected = 3
อินพุต:
std::vector<long long> coins = {1, 1, 4};
ผลลัพธ์ที่คาดหวัง:
long long expected = 3;
อินพุต:
long[] coins = new long[] {1, 1, 4};
ผลลัพธ์ที่คาดหวัง:
long expected = 3;
คำอธิบาย
จำนวนเงิน 1 และ 2 สามารถสร้างได้โดยใช้เหรียญมูลค่า 1 แต่ไม่มีชุดเหรียญใดรวมกันได้ 3
อินพุต:
coins = [2, 3]
ผลลัพธ์ที่คาดหวัง:
expected = 1
อินพุต:
std::vector<long long> coins = {2, 3};
ผลลัพธ์ที่คาดหวัง:
long long expected = 1;
อินพุต:
long[] coins = new long[] {2, 3};
ผลลัพธ์ที่คาดหวัง:
long expected = 1;
คำอธิบาย
ไม่สามารถสร้างจำนวนเงิน 1 ได้เลย เพราะทุกเหรียญมีมูลค่าอย่างน้อย 2
แหล่งอ้างอิง
โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน