\u003cp\u003e你可以使用双指针的方式来实现。\u003c/p\u003e\n\u003cp\u003e首先,我们定义两个指针:i 和 j,其中 i 表示当前不重复元素的最后一个位置,j 表示当前遍历的位置。\u003c/p\u003e\n\u003cp\u003e然后,我们从数组的第二个元素开始遍历,如果当前元素和前一个元素相同,则 j 继续向后移动;如果当前元素和前一个元素不同,则将当前元素复制到 i+1 的位置,并将 i 向后移动一位。\u003c/p\u003e\n\u003cp\u003e最后,返回 i+1,即为删除重复元素后的新长度。\u003c/p\u003e\n\u003cp\u003e以下是具体的 JavaScript 代码实现:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class\u003d'language-javascript\u003e\nfunction removeDuplicates(nums) {\n if (nums.length === 0) {\n return 0;\n }\n\n let i = 0;\n for (let j = 1; j \u003c nums.length; j++) {\n if (nums[j] !== nums[i]) {\n i++;\n nums[i] = nums[j];\n }\n }\n\n return i + 1;\n}\n\nconst nums = [1, 1, 2, 2, 3, 4, 5, 5];\nconst newLength = removeDuplicates(nums);\nconsole.log(newLength);\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e输出结果为:5,即删除重复元素后的新长度。\u003c/p\u003e\n\u003cp\u003e如果你需要返回唯一元素的个数,可以遍历数组并统计不重复元素的个数:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class\u003d'language-javascript\u003e\nfunction countUniqueElements(nums) {\n let count = 0;\n for (let i = 0; i \u003c nums.length; i++) {\n if (i === 0 || nums[i] !== nums[i - 1]) {\n count++;\n }\n }\n return count;\n}\n\nconst nums = [1, 1, 2, 2, 3, 4, 5, 5];\nconst uniqueCount = countUniqueElements(nums);\nconsole.log(uniqueCount);\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e输出结果为:5,即唯一元素的个数。\u003c/p\u003e

JavaScript 删除排序数组中的重复元素 - 原地算法实现

原文地址: https://www.cveoy.top/t/topic/qocb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录