题目描述给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度。要求:不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作。例如:给出数组A=[1,1,2],你的函数调用之后必须返回长度length=2,并且A现在变成[1,2]。
最简单的办法,应该使用 array_search 和 unset 两个函数完成,代码这样写:if ( !我们使用变量 $key 获取 array_search 的返回值,如果不是 false,那么就是存在。
Array 提供了 concat 方法:ES6 中引入了 spread operator,一种更方便的方法:还有一种比较奇特方法:上面 2 种通用的方法,都不会改变原数组,最后一种奇特方法,会改变 push 的原数组,谨慎使用。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O 额外空间的条件下完成。示例 1:给定数组 nums = ,函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
也就是说,expectedModCount 初始化为 modCount 了,但是后面 expectedModCount 没有修改,而在 remove 和 add 的过程中修改了modCount ,这就导致了执行的时候,通过 checkForComodification 方法来判断两个值是否相等,如果相等了,那么没问题,如果不相等,那就给你抛出一个异常来。