算法-原地删除数组元素
时间:2022-07-28
本文章向大家介绍算法-原地删除数组元素,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原地删除数组元素
难度:简单
描述:
给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
样例:
给出一个数组 [0,4,4,0,0,2,4,4],和值 4
返回 4 并且 4 个元素的新数组为[0,0,0,2]
代码模板:
const removeElement = (arr, ele) => {};
想一想再看答案
想一想再看答案
想一想再看答案
代码:
- 保存遍历次数,匹配元素,然后删除
切勿直接使用数组的length
属性,因为被删除后length
属性会减少,导致遍历提前结束,删除不彻底。
const removeElement = (arr, ele) => {
let num = arr.length; // 保存遍历的次数
for (let index = 0; index < num; index++) {
let find = arr.indexOf(ele);
if (find !== -1) {
arr.splice(find, 1); // 原地删除
} else {
return arr.length; // 找不到即退出
}
}
};
- 遍历数组,匹配元素,赋值为
null
/undefined
,再过滤掉
const removeElement = (arr, ele) => {
for (let index of arr.keys()) {
let find = arr.indexOf(ele);
if (find !== -1) {
arr[find] = null;
} else {
return arr.filter(x => x).length; // 将假值过滤掉
}
}
};
- 直接过滤
在写出上个方法之后,想到可以直接过滤掉,最简洁。但还是把另外两个方法放上来,当个思路参考一下!
const removeElement = (arr, ele) => {
return arr.filter(x => x !== ele).length; // 使用过滤将值不等于ele的直接过滤出来,返回长度
};
鼓励我一下:
觉得还不错的话,给我的项目点个star吧
- 洛谷P3383 【模板】线性筛素数(Miller_Rabin)
- BZOJ3667: Rabin-Miller算法
- Numpy 修炼之道 (2)—— N维数组 ndarray
- python爬虫入门(五)Selenium模拟用户操作
- python爬虫入门(六) Scrapy框架之原理介绍
- lambda表达式杂谈
- python爬虫入门(七)Scrapy框架之Spider类
- python爬虫入门(八)Scrapy框架之CrawlSpider类
- python爬虫入门(九)Scrapy框架之数据库保存
- Numpy 修炼之道(1) —— 什么是 Numpy
- TensorFlow修炼之道(3)——计算图和会话(Graph&Session)
- 1.python简介
- 《Python自然语言处理》答案第三章
- 2.python数据类型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- django-URL别名的作用(六)
- springmvc之如何确定目标方法Pojo类型的参数?
- 【colab pytorch】使用tensorboardcolab可视化
- 实用,完整的HTTP cookie指南
- django-URL之从URL中获取关键字(七)
- springmvc之使用POJO作为参数
- 【猫狗数据集】利用tensorboard可视化训练和测试过程
- springmvc之视图解析流程
- 【猫狗数据集】从命令行接收参数
- django-URL重定向(八)
- Jetpack新成员,App Startup一篇就懂
- python之利用魔术方法实现自己定义的二维向量
- 【猫狗数据集】使用top1和top5准确率衡量模型
- django-URL反向解析Reverse(九)
- spring之如何在web应用中使用?