LeetCode 27:移除元素
题意
给你一个数组 nums 和一个 val,原地移除所有数值等于 val 的值,并返回移除后数组的新长度。...示例
输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0,...注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。
提示
必须使用 O(1) 空间复杂度并原地修改输入数组。...比如第一层 for 循环遍历到下标为 2 的位置发现 nums[2] == val,那么第二层循环就将 i+1 ~ n -1 位置上的元素全部向前移动一个位置。...如果 nums[fast] == val,证明当前 nums[fast] 是要删除的元素,fast 向后移动一位。
fast 遍历完整个数组,结束,slow 的值就是剩余数组的长度。