โปรดจำไว้ว่าชุดจะไม่มีการเรียงลำดับโดยไม่มีการซ้ำซ้อน
นิยามไม่มีสารเติมแต่ง -uniquely ชุดSมีความยาวKเป็นชุดดังกล่าวว่าทุกNมีความยาวย่อยในSรวมกับตัวเลขที่แตกต่างกัน กล่าวอีกนัยหนึ่งผลรวมของชุดย่อยN -length ทั้งหมดของSนั้นแตกต่างกันทั้งหมด
วัตถุประสงค์ป.ร. ให้อาร์เรย์ / ชุดเป็น input และตัวเลขN
เพื่อฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบในรูปแบบที่เหมาะสมใด ๆ ค้นหาและการกลับมาหรือส่งออก truthy หรือ falsey ค่า (erroring สำหรับ falsey ไม่เป็นไร) แสดงถึงหรือไม่ว่าใส่เป็นN - สารเติมแต่งที่ไม่ซ้ำกัน
คุณอาจคิดว่าแต่ละองค์ประกอบจะปรากฏเพียงครั้งเดียวมากที่สุดและแต่ละหมายเลขนั้นอยู่ในประเภทข้อมูลดั้งเดิมของภาษาของคุณ ถ้าจำเป็นคุณอาจสมมติว่าอินพุตถูกเรียงลำดับ 0 < N <= K
สุดท้ายคุณอาจคิดว่า
ตัวอย่าง
ลองพิจารณาการตั้งค่าและS = {1, 2, 3, 5}
N = 2
นี่คือผลรวมทั้งหมดของคู่ที่ไม่ซ้ำกันทั้งหมดS
(สำหรับรายการที่ไม่ซ้ำกันเป็นรายการเดียวที่น่าสนใจสำหรับผลรวม):
1 + 2 = 3
1 + 3 = 4
1 + 5 = 6
2 + 3 = 5
2 + 5 = 7
3 + 5 = 8
เราสามารถเห็นได้ว่าไม่มีการซ้ำซ้อนในเอาต์พุตดังนั้นSเป็นสารเติมแต่งที่ไม่ซ้ำกัน 2 รายการ
ตอนนี้ขอให้พิจารณาการตั้งค่าและT = {12, 17, 44, 80, 82, 90}
N = 4
นี่คือผลรวมทั้งหมดที่เป็นไปได้ของความยาวสี่:
12 + 17 + 44 + 80 = 153
12 + 17 + 44 + 82 = 155
12 + 17 + 44 + 90 = 163
12 + 17 + 80 + 82 = 191
12 + 17 + 80 + 90 = 199
12 + 17 + 82 + 90 = 201
12 + 44 + 80 + 82 = 218
12 + 44 + 80 + 90 = 226
12 + 44 + 82 + 90 = 228
12 + 80 + 82 + 90 = 264
17 + 44 + 80 + 82 = 223
17 + 44 + 80 + 90 = 231
17 + 44 + 82 + 90 = 233
17 + 80 + 82 + 90 = 269
44 + 80 + 82 + 90 = 296
พวกมันล้วนมีเอกลักษณ์เฉพาะตัวดังนั้นTจึงเป็นสารเติมแต่ง 4 อย่างที่ไม่ซ้ำใคร
กรณีทดสอบ
[members], N => output
[1, 4, 8], 1 => true
[1, 10, 42], 1 => true ; all sets trivially satisfy N = 1
[1, 2, 3, 4], 3 => true
[1, 2, 3, 4, 5], 5 => true
[1, 2, 3, 5, 8], 3 => true
[1, 2, 3, 4, 5], 2 => false ; 1 + 4 = 5 = 2 + 3
[-2, -1, 0, 1, 2], 3 => false ; -2 + -1 + 2 = -1 = -2 + 0 + 1
[1, 2, 3, 5, 8, 13], 3 => false ; 1 + 2 + 13 = 16 = 3 + 5 + 8
[1, 2, 4, 8, 16, 32], 3 => true
[1, 2, 4, 8, 16, 32], 4 => true
[1, 2, 4, 8, 16, 32], 5 => true
[1, 2, 4, 8, 16, 32], 6 => true
[3, 4, 7, 9, 12, 16, 18], 6 => true
[3, 4, 7, 9, 12, 16, 18], 3 => false ; 3 + 4 + 12 = 19 = 3 + 7 + 9
falsey
หรือไม่?
N <= K
อะไร