删除数组中等于任何给定 targert 的元素
remove the element in the array which is equal to any given targert
完整的问题是:
给定一个数组和一个值,就地删除该值的所有实例并返回新的长度。可以更改元素的顺序。超出新长度的内容并不重要。
还有我的代码。
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]
我想知道为什么,我认为应该是对的,谁能给我一些足够的理由让我理解?
请求是就地删除该值的所有实例,即修改 A 指向的数组的内容。您需要返回一个新的长度,以便数组[A, A + new_length)
包含所有不等于 elem
的元素。
你误解了他们希望你如何解决问题。他们有一段代码,如下所示:
int main() {
int array[2] = {4, 5};
int length = 2;
// Call the user's function
int new_length = removeElement(array, length, 4);
// Validate their output.
assert(new_length == 1);
assert(array[0] == 5);
}
代码在第二个断言上失败。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 从控制台中删除最后打印的元素
- 删除数组中等于任何给定 targert 的元素