полный вопрос:удалить элемент массива, который равен любому данному targert
Учитывая массив и значение, удалить все экземпляры этого значения на месте и возвращает новый порядок length.The элементов можно изменить. Неважно, что вы оставляете за новой длиной.
и есть мой код.
int removeElement(int A[], int n, int elem) {
vector<int> B;
for (int i=0; i<n; i++) {
if (A[i]!=elem) {
B.push_back(A[i]);
}
}
return B.size();
}
, когда я отправить этот код в онлайн судья, он говорит мне, что я дал неправильного ответа. Тест он отвечает это:
Input: [4,5], 4
Your Output: [4]
Expected Output: [5]
И я хочу знать, почему, я думаю, что это должно быть правильно, может кто-нибудь дать мне достаточно оснований, чтобы позволить мне понять?
«мы должны выводить» и «но ожидаем» означают одно и то же. Я не могу сказать, какая программа выводится, и чего ожидает судья. Но в любом случае правильный ответ - [5], так как вы должны удалить все экземпляры 4 из массива. Вы ничего не удаляете из массива, вы просто перемещаете неравные элементы в вектор, а затем * выбрасываете вектор *. – cdhowie
Это однострочный шрифт с использованием 'std :: remove' и' vector :: erase'. – PaulMcKenzie
@cdhowie прав, Учитывая ваше описание проблемы, пожалуйста, просмотрите свой вопрос, чтобы получить помощь. – samuel