/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
  for(let i = 0;i < nums.length; i++){
    if(nums[i] == nums[i+1]){
      nums.splice(i,1)
      i--
    }
  }
  return nums.length
}

本题用JavaScript语法暴力解答很简单,循环找到重复元素删除就好了。

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
  for (var m = 0, n = 0; n < array.length; n++) {
    if (array[m] !== array[n]) {
      m++
      // 如果只是为了返回不重复元素个数 可以不写
      array[m] = array[n]
    }
  }
  return m + 1
  // console.log(m + 1);
}

因为只要返回不重复元素的个数,所以可以使用双指针标记。这种方法无论是时间还是空间都更高效。