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 iVí dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#includeusing 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,