LeetCode题目
代码实现:Go语言
func removeElement(nums []int, val int) int {
fast,slow:=0,0
for fast<len(nums){
if nums[fast]!=val{
nums[slow]=nums[fast]
slow++
}
fast++
}
return slow
}
解题思路:快慢指针
利用fast遍历数组 如果不重复将数值给slow 并让slow往前走 如果fast与元素值相同则fast继续往前走。
注意:区别于26题
这里是先给 nums[slow] 赋值然后再给 slow++,这样可以保证 nums[0…slow-1] 是不包含值为 val 的元素,最后的结果数组长度为slow。