力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
思路一:新开辟一个数组,空间复杂度O(N)
因为本题要求是空间复杂度O(1),所以这里只是列出思路1的思路和配图,并没有具体的实现代码,想必这对大家一定很简单。
思路二:使用快慢指针,空间复杂度O(1),在数组中就用下标表示。
如果dest所指向的内容不是val,就将arr[dest]的内容赋值到arr[src]中,src++,dest++。否则只是dest++。
int removeElement(int* nums, int numsSize, int val) {int slow = 0;int fast = 0;while(fast < numsSize){if(nums[fast] != val){nums[slow++] = nums[fast]; }fast++;}return slow;
}