问题描述
给定一个数组,将其中值为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 = 0; //f0

这篇博客讨论了如何在不使用额外空间的情况下,将一个数组中的所有值为0的元素移动到数组的后面,同时保持其他元素的相对位置不变。作者提出通过遍历数组并交换0元素与其后的非0元素来实现这一目标。
最低0.47元/天 解锁文章
4501

被折叠的 条评论
为什么被折叠?



