将有序数组中重复的数字去掉,返回新的数组长度。
乍一看,这道题很简单。想法:从前往后比较,如果两个数字相等,则后一个数字等于它本身的后一个数并且此时len--;最后返回len。但是这样做有一个问题:如果是数组的最后一个与前面的数相等,则此时,会溢出,会取到数组之外的一个数。
所以应该转换思路:考虑两个数不等的情况,并且在同一个数组中,记录下不相等的数字。
如果是一个无序数组中去掉相同的数字,并且空间复杂度为O(1)。。可以使用排序方法(比如快速排序)将数组变成一个有序的,然后按照上面的方法。。(但是这样做也许会超时)