/** * @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); }
因为只要返回不重复元素的个数,所以可以使用双指针标记。这种方法无论是时间还是空间都更高效。