题目:移除元素 力扣
思路:把是目标的元素更新为下一个非目标的元素,这样得到j前面的全是非目标元素,j往后的元素全部丢弃。
代码:
var removeElement = function(nums, val) {
let j = 0
for (let i = 0; i < nums.length; i ++) {
if (nums[i] !== val) {
nums[j] = nums[i]
j ++
}
}
while (nums.length !== j) {
nums.splice(nums.length - 1, 1)
}
return nums.length
};
题目:删除有序数组中的重复项 力扣
思路:使用数据结构set判断是否重复,整体逻辑同上面的移除元素
代码:
var removeDuplicates = function(nums) {
const set = new Set()
let j = 0
for (let i = 0; i < nums.length; i ++) {
if (!set.has(nums[i])) {
set.add(nums[i])
nums[j] = nums[i]
j ++
}
}
while (nums.length !== j) {
nums.splice(nums.length - 1, 1)
}
return nums.length
};