在工作中碰到这么一个问题:给定一个已经排序的数组(升序),删除数组中重复的数据,但是只能使用一个数组,这个数组的大小可以变化.
例子: 数组:[1,1,2,2,3,3,4,5,7,10]
输出::[1,2,3,4,5,7,10]
实现(1):
var arr =new Array(1,1,2,2,3,3,4,5,7,10);
var len = arr.length;
for(var i=len-1;i>=1;i--)
{
if(arr[i-1] == arr[i])
{
arr.splice(i,1);
}
}
alert(arr);
实现(2):
var arr =new Array(1,1,2,2,3,3,4,5,7,10);var len = arr.length;var k=0;for(var i=1;i<len;i++){ if(arr[k] != arr[i]) { arr[k+1]=arr[i]; k++; } }alert(arr);
但是发现其性能并不是最好的,不知道您是否有更好的算法.(实现语言可以是JavaScript,C#,VB.net,.....)
您可能感兴趣的文章:
- sqlserver中重复数据值只取一条的sql语句
- sqlserver合并DataTable并排除重复数据的通用方法分享
- 教你几种在SQLServer中删除重复数据方法
- sql删除重复数据的详细方法
- SQL语句删除2条重复数据一条保留一条
- 一个过滤重复数据的 SQL 语句
- 删除数据库中重复数据的几个方法
- SQL Server中删除重复数据的几个方法