Question:
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
#include<stdio.h>
int removeElement(int *nums,int numsSize,int val)
{
int count=0;
int i;
for(i=0;i<numsSize;i++)
{
if(*(nums+i)!=val)
{
*(nums+i-count)=*(nums+i);
}
else
{
count++;
}
}
return (numsSize-count);
}
int main(void)
{
int a[]={1,2,3,4,1,2,3,6};
int t=removeElement(a,8,1);
int i;
printf("length %d\n",t);
for(i=0;i<t;i++)
{
printf("%d",a[i]);
}
}

本文介绍了一个使用C语言实现的算法,用于从数组中移除指定值的所有实例,并返回更新后的数组长度。通过迭代遍历数组,该算法能够原地修改数组,提供一种灵活且内存效率高的解决方案。
147

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



