gpt4 book ai didi

c++ - 删除多个数组元素并移动数组的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:09 24 4
gpt4 key购买 nike

我有一个数组,假设有 5 个项目,如果 element[i] 小于 3 需要移动 element [i+1] 代替 element[i]

int array[5] = {4, 2, 3, 5, 1};
int number = 3;

for (int i = 0; i < number; i++)
{
if (array[i] > number)
{
for (int j = 0; j < i - 1; j++)
{
array[j] = array[j + 1];
}
number = number - 1;
}
}

预期结果是array = {2, 3, 1, anyNumber, anyNumber};

最佳答案

上述问题的 O(n) 工作代码..但正如其他人在评论中指出的那样..您最终得到一个使用较少空间然后分配给它的数组..

#include<stdio.h>

int main()
{

int arr[] = {4, 2, 3, 5, 1};

int* temp1 = arr;
int* temp2 = arr;
int i, n1 = 5, n2 = 5;

for(i = 0; i < n1; i++)
{
if(*temp2 >= 3)
{
*temp1 = *temp2;
temp1++;
temp2++;
}
else
{
n2--; //the number of elements left in the array is denoted by n2
temp2++;
}
}
}

关于c++ - 删除多个数组元素并移动数组的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26471037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com