
Make Array Consecutive
Cho một mảng số nguyên
Hãy viết chương trình tìm ra một mảng mới, sao cho các phần tử trong 2 mảng này chứa đủ các số nguyên liên tiếp của một khoảng nào đó
Ví dụ:
- Với
sequence = [6, 2, 3, 8]
, thì kết quảmakeArrayConsecutive(sequence) = [4, 5, 7]
.
Với mảng mới gồm các số[4,5,7]
, thì hai mảng có chứa đủ các số nguyên liên tiếp từ2
tới8
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5 seconds
-
[Đầu vào] array.integer sequence
Mảng chứa các số nguyên khác nhau
Điều kiện:1 ≤ sequence.length ≤ 10
,-10 ≤ sequence[i] ≤ 10
. -
[Đầu ra] array.integer
- Mảng đã sắp xếp có độ dài ngắn nhất thỏa mãn yêu cầu đề bài.
Hướng dẫn bài tập.
Code mẫu:
Ngôn ngữ C++:
std::vector<int> makeArrayConsecutive(std::vector<int> sequence)
{
std::vector<int> a;
sort(sequence.begin(), sequence.end());
int k = sequence[0];
int h=0;
while(k!=sequence[sequence.size()-1]){
if (k==sequence[h]){
k++;
h++;
}
else{
while(k!=sequence[h]){
a.push_back(k);
k++;
}
}
}
return a;
}
Post Comment