2023/01/21,断更两天,今日补上,喜欢的朋友可以点赞关注订阅,
您的支持就是最大的动力,感谢~~~
问题描述:
https://leetcode.com/problems/remove-element/description/
1.给定数组,删除值为指定值的元素,
2. 返回删除后数组长度,
3.空间复杂度要求为O(1)
解题思路:
比较类似,空间复杂度O(1) 即要求在原数组操作,不能开新数组。
设定游标,记录非指定元素的更新位置,
遍历数组,非指定值时更新游标,游标索引处数组值更新为当前遍历位置数组值
答案C语言版本:
int removeElement(int* nums, int numsSize, int val){
uint32_t i = 0;
int ret = 0;
for (i = 0; i < numsSize; i++) {
if (nums[i] != val) {
nums[ret] = nums[i];
ret++;
}
}
return ret;
}