Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm mảng sau khi chèn các phần tử mới có sự khác biệt hai phần tử bất kỳ trong mảng

Giả sử chúng ta có một mảng A với n phần tử phân biệt. Một mảng B được gọi là đẹp nếu với bất kỳ hai phần tử phân biệt B [i] và B [j] nào, | B [i] - B [j] | xuất hiện trong B ít nhất một lần và tất cả các phần tử trong B sẽ khác biệt. Chúng tôi phải kiểm tra xem chúng tôi có thể thêm một số số nguyên trong A để làm cho nó có kích thước đẹp nhất là 300. Nếu có thể, hãy trả về mảng mới, nếu không thì trả về -1.

Vì vậy, nếu đầu vào là A =[4, 8, 12, 6], thì đầu ra sẽ là [8, 12, 6, 2, 4, 10], bởi vì | 4−2 | =| 6−4 | =| 8−6 | =| 10−8 | =| 12−10 | =2 nằm trong mảng, | 6−2 | =| 8−4 | =| 10−6 | =| 12−8 | =4 nằm trong mảng, | 8−2 | =| 10−4 | =| 12−6 | =6 nằm trong mảng, | 10−2 | =| 12−4 | =8 nằm trong mảng và | 12−2 | =10 nằm trong mảng, vì vậy mảng đẹp. (Các câu trả lời khác cũng có thể)

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

 n:=size of At:=0b:=0 để khởi tạo i:=0, khi i  

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

 #include  using namespace std; void Expl (vector  A) {int n =A.size (); int t =0; int b =0; for (int i =0; i  A ={4, 8, 12, 6}; giải quyết (A);} 

Đầu vào

 {4, 8, 12, 6} 

Đầu ra

 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,