题意:
解题思路:
思路:1112231. 每个元素最多出现两次,所以可以从第三个元素开始比较;2. 因为第三个元素跟第一个元素差等于2,所以可以判断是否相等; 2.1 如果不相等,表示第三个位置的元素跟前两个不相等,那么第三个位置为正确位置 2.2 如果相等,则后移指针,用第四个元素跟第一个比较, 第四个元素如果跟第一个不相等,则表示第四个为新元素,可以用第四个元素来代替第三个位置的重复元素;
PHP代码实现:
class Solution { /** * @param Integer[] $nums * @return Integer */ function removeDuplicates(&$nums) { $current = 1; for ($i = 2; $i < count($nums); $i++) { if ($nums[$i] != $nums[$current - 1]) { $current += 1; $nums[$current] = $nums[$i]; } } return $current + 1; }}
GO代码实现:
func removeDuplicates(nums []int) int { current := 1 for i := 2; i < len(nums); i++ { if nums[i] != nums[current - 1] { current++ nums[current] = nums[i] } } return current + 1}