思路
思路一:双指针
用一个指针遍历nums数组,找到与val不相同的元素,赋给另一个指针,该指针的索引 left + 1 (最后经过一次left++)即为移除元素后数组的长度。
思路二:
遍历nums数组找到与val不相同的元素,并重新从头开始添加到nums,得到新的nums,新数组的s索引 + 1(同left经过最后一次i++)即为移除元素后数组的长度。
思路三:(优化思路一)
通过遍历判断数组元素是否等于val,若相等则与数组最后一个元素进行交换。结果得到数组前端部分为非val,后段部分为val(可能无val),注意返回时需 + 1。
代码
思路一
思路二
思路三
总结
方法注意
在思路二中有foreach用法(非关键字)
语法:for(变量类型 变量:遍历对象)