สมมติว่าเรามีอาร์เรย์ A ที่มีองค์ประกอบที่แตกต่างกัน n อาร์เรย์ B เรียกว่า ดี ถ้าสำหรับสององค์ประกอบที่แตกต่างกัน B[i] และ B[j] |B[i] - B[j]| ปรากฏใน B อย่างน้อยหนึ่งครั้ง และองค์ประกอบทั้งหมดใน B จะแตกต่างกัน เราต้องตรวจสอบว่าเราสามารถเพิ่มจำนวนเต็มหลายจำนวนใน A เพื่อให้มีขนาดไม่เกิน 300 หรือไม่ หากเป็นไปได้ ให้คืนค่าอาร์เรย์ใหม่ ไม่เช่นนั้นให้คืนค่า -1
ดังนั้น หากอินพุตเป็น A =[4, 8, 12, 6] ผลลัพธ์จะเป็น [8, 12, 6, 2, 4, 10] เพราะ |4−2| =|6−4| =|8−6| =|10−8| =|12-10| =2 อยู่ในอาร์เรย์ |6−2| =|8−4| =|10−6| =|12−8| =4 อยู่ในอาร์เรย์ |8−2| =|10−4| =|12−6| =6 อยู่ในอาร์เรย์ |10−2| =|12−4| =8 อยู่ในอาร์เรย์ และ |12−2| =10 อยู่ในอาร์เรย์ ดังนั้นอาร์เรย์จึงดี (คำตอบอื่นๆ ก็ได้)
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
n :=size of At :=0b :=0for initialize i :=0 when iตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#includeใช้เนมสเปซ std;void แก้ปัญหา(vector A) { int n =A.size(); int เสื้อ =0; int b =0; สำหรับ (int i =0; i A ={ 4, 8, 12, 6 }; แก้(A);} อินพุต
{ 4, 8, 12, 6 }ผลลัพธ์
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,