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

ผลรวมเหรียญที่ขาดหายที่น้อยที่สุด

หาจำนวนเงินบวกที่น้อยที่สุดที่ไม่สามารถสร้างได้จากเหรียญที่มีอยู่

คุณสามารถเลือกเหรียญจากชุดที่ให้มาได้ตามต้องการ โดยแต่ละเหรียญสามารถใช้ได้เพียงครั้งเดียว แม้จะมีเหรียญหลายเหรียญที่มีมูลค่าเท่ากันก็ตาม จงหาจำนวนเต็มบวกที่น้อยที่สุดซึ่งไม่สามารถสร้างได้จากการเลือกเหรียญใด ๆ

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

อินพุต

coins: มูลค่าของเหรียญที่มีอยู่ แต่ละค่าซ้ำกันได้ หมายถึงเหรียญคนละเหรียญ

เอาต์พุต

ให้คืนค่าจำนวนเต็มบวกที่น้อยที่สุดซึ่งไม่สามารถสร้างได้

เงื่อนไข

1 ≤ จำนวนเหรียญ ≤ 200,000 แต่ละค่ามีค่าระหว่าง 1 ถึง 1,000,000,000

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
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

ตัวอย่างที่ 2
อินพุต:
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 กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

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

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

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