初阶数据结构顺序表OJ题
文章目录
移除数组
删除有序数组中的重复项
分析如下图:
思路一和思路二都不符合题目的要求
int removeElement(int* nums, int numsSize, int val)
{
int src = 0,dst=0;
while(src<numsSize)
{
//找不是val的值
if(nums[src] == val)
{
src++;
}
else
{
nums[dst] = nums[src];
src++;
dst++;
}
}
return dst;
}
2.
画图分析
int removeDuplicates(int* nums, int numsSize)
{
//先判断有没有元素
if(numsSize == 0)
{
return 0;
}
int src = 0,dst = 0;
while(src < numsSize)
{
if(nums[src] == nums[dst])
{
src++;
}
else
{
nums[dst+1] =nums[src];
src++;
dst++;
}
}
return dst+1;//注意:数组最大下标值+1=数组长度
}
当然一道题会有不同的解法。有错误的地方还请大佬们指出!