编写一个原地删除数组元素的代码
时间: 2023-05-14 15:07:19 浏览: 67
以下是一个原地删除数组元素的示例代码:
```python
def remove_element(nums, val):
i = 0
for j in range(len(nums)):
if nums[j] != val:
nums[i] = nums[j]
i += 1
return i
```
这个函数接受一个数组 `nums` 和一个值 `val`,并返回删除所有等于 `val` 的元素后的数组长度。在函数内部,我们使用两个指针 `i` 和 `j`,其中 `i` 指向当前已经处理好的数组的末尾,而 `j` 则用来遍历整个数组。当 `nums[j]` 不等于 `val` 时,我们就将其赋值给 `nums[i]`,并将 `i` 向后移动一位。最后,返回 `i` 即可。
注意,这个函数并没有使用额外的空间,而是直接在原数组上进行修改,因此可以被称为原地删除。
相关问题
使用java语言编写一个原地删除数组元素的代码
可以使用以下代码实现原地删除数组元素:
```java
public static void removeElement(int[] nums, int val) {
int i = 0;
int n = nums.length;
while (i < n) {
if (nums[i] == val) {
nums[i] = nums[n - 1];
n--;
} else {
i++;
}
}
}
```
该方法接受一个整数数组和一个整数值作为参数,将数组中所有等于该值的元素原地删除。具体实现是使用两个指针 i 和 n,i 指向当前遍历到的元素,n 指向数组的末尾。如果当前元素等于给定值,就将它和数组末尾的元素交换,并将 n 减一;否则,i 就加一。这样,当 i 遍历完整个数组时,数组中所有等于给定值的元素都已经被原地删除了。
编写创建一个一维数组的C++代码
以下是创建一个一维数组的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
int arr[5]; // 声明一个长度为5的整型数组
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i+1 << "个数字:";
cin >> arr[i]; // 读入数组元素
}
cout << "输入的数组为:";
for (int i = 0; i < 5; i++) {
cout << arr[i] << " "; // 输出数组元素
}
cout << endl;
return 0;
}
```
在这段代码中,我们先声明了一个长度为5的整型数组arr,然后通过for循环读入数组元素,最后输出了输入的数组。