删除排序素数组中的重复选项
难度:简单
题目求解的是返回移除后数组的新长度,即返回数组中不重复数的个数
第一种方法
时间复杂度:O(n)
空间复杂度:O(1)
// 循环遍历数组比较第i个与第i+1个的值是否相等,不相等i+1
// 返回i+1,是因为题目是给一个排序数组,长度至少有1
// 同时i是慢指针,j是快指针
var removeDuplicates = function(nums) {
let i = 0
for (let j = 1 ; j < nums.length ; j ++){
if (nums[j] !== nums[i]){
i ++
nums[i] = nums[j]
}
}
return i + 1
};
数据结构与算法:
- 数据结构与算法要解决什么问题:快和省的问题,即如何让代码运行的更快,如何让代码更省存储空间。
- 复杂度分析是算法学习的基础,包括时间复杂度、空间复杂度
- 复杂度分析的方法:大O表示法,计算代码执行随着时间增长的一种变化趋势
- 时间复杂度:表示算法的执行时间随着数据增长的一种变化趋势
- 空间复杂度:表示算法的存储空间随着数据增长的一种变化趋势
网友评论