Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C ++ เพื่อค้นหาอาร์เรย์หลังจากแทรกองค์ประกอบใหม่โดยที่ความแตกต่างขององค์ประกอบสององค์ประกอบอยู่ในอาร์เรย์


สมมติว่าเรามีอาร์เรย์ 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,