问题描述
给定一个数组,将其中值为0的元素放到数组的后面,并且保持其他元素的相对位置不变,要求不使用额外的空间。
思路
不能使用额外的空间,则需要用到交换数组中的元素。只需要把数组后面的非0的元素与前面为0的元素交换,就可以了。进行一次遍历即可,代码如下。
代码
#include <iostream>
using namespace std;
int main()
{
int arr[1000];
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> arr[i];
int f0 =