代码拉取完成,页面将自动刷新
<script>
// 标签:拷贝覆盖
// 主要思路是遍历数组 nums,每次取出的数字变量为 num,同时设置一个下标 ans
// 在遍历过程中如果出现数字与需要移除的值不相同时,则进行拷贝覆盖 nums[ans] = num,ans 自增 1
// 如果相同的时候,则跳过该数字不进行拷贝覆盖,最后 ans 即为新的数组长度
// 这种思路在移除元素较多时更适合使用,最极端的情况是全部元素都需要移除,遍历一遍结束即可
// 时间复杂度:O(n)O(n),空间复杂度:O(1)O(1)
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
let ans = 0
for(const num of nums){
if(num !== val){
nums[ans] = num
ans++
}
}
return nums.slice(0,ans)
};
console.log(removeElement([3,2,2,3],3));
</script>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。