删除重复元素,时间复杂度O(n)
删除除数组中重复数字,返回删除后数组长度,不能创建新数组、对象,时间复杂度O(n)
```js
function unique(arr) {
arr.sort((a, b) => a - b);
for (let i = 1; i < arr.length;) {
if (arr[i - 1] === arr[i]) {
arr.splice(i, 1)
} else {
i++
}
}
console.log(arr)
}
unique([1, 2, 2, 2, 2, 2, 3, 3, 4, 5, 6, 6])
```
```js
function unique(arr) {
arr.sort((a, b) => a - b);
for (let i = 1; i < arr.length;) {
if (arr[i - 1] === arr[i]) {
arr.splice(i, 1)
} else {
i++
}
}
console.log(arr)
}
unique([1, 2, 2, 2, 2, 2, 3, 3, 4, 5, 6, 6])
```
全部评论
sort了还能是O(n)吗
有其他语言解法吗?谢谢
厉害,这应该是最优解了吧
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享