刪除重復(fù)數(shù)據(jù)的算法
更新時(shí)間:2006年11月23日 00:00:00 作者:
在工作中碰到這么一個(gè)問(wèn)題:給定一個(gè)已經(jīng)排序的數(shù)組(升序),刪除數(shù)組中重復(fù)的數(shù)據(jù),但是只能使用一個(gè)數(shù)組,這個(gè)數(shù)組的大小可以變化.
例子: 數(shù)組:[1,1,2,2,3,3,4,5,7,10]
輸出::[1,2,3,4,5,7,10]
實(shí)現(xiàn)(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);
實(shí)現(xiàn)(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);
但是發(fā)現(xiàn)其性能并不是最好的,不知道您是否有更好的算法.(實(shí)現(xiàn)語(yǔ)言可以是JavaScript,C#,VB.net,.....)
例子: 數(shù)組:[1,1,2,2,3,3,4,5,7,10]
輸出::[1,2,3,4,5,7,10]
實(shí)現(xiàn)(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);
實(shí)現(xiàn)(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);
但是發(fā)現(xiàn)其性能并不是最好的,不知道您是否有更好的算法.(實(shí)現(xiàn)語(yǔ)言可以是JavaScript,C#,VB.net,.....)
您可能感興趣的文章:
- sqlserver中重復(fù)數(shù)據(jù)值只取一條的sql語(yǔ)句
- sqlserver合并DataTable并排除重復(fù)數(shù)據(jù)的通用方法分享
- 教你幾種在SQLServer中刪除重復(fù)數(shù)據(jù)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL語(yǔ)句刪除2條重復(fù)數(shù)據(jù)一條保留一條
- 一個(gè)過(guò)濾重復(fù)數(shù)據(jù)的 SQL 語(yǔ)句
- 刪除數(shù)據(jù)庫(kù)中重復(fù)數(shù)據(jù)的幾個(gè)方法
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
相關(guān)文章
JavaScript面對(duì)國(guó)際化編程時(shí)的一些建議
這篇文章主要介紹了JavaScript面對(duì)國(guó)際化編程時(shí)的一些建議,包括時(shí)區(qū)與語(yǔ)言編碼等一些值得注意的問(wèn)題,需要的朋友可以參考下2015-06-06網(wǎng)頁(yè)收藏夾顯示ICO圖標(biāo)(代碼少)
在添加網(wǎng)頁(yè)到收藏夾之后會(huì)看到一個(gè)漂亮的圖標(biāo),很好奇是怎么實(shí)現(xiàn)的呢?下面小編就給大家講解下網(wǎng)頁(yè)收藏夾顯示ICO圖標(biāo)(代碼少),有需要的小伙伴可以來(lái)參考下2015-08-08Javascript數(shù)組循環(huán)遍歷之forEach詳解
本篇文章主要介紹了Javascript 數(shù)組循環(huán)遍歷之forEach詳解,對(duì)學(xué)習(xí)forEach有很好的幫助,有需要的可以了解一下。2016-11-11JavaScript 無(wú)符號(hào)右移運(yùn)算符
無(wú)符號(hào)右移運(yùn)算符 (>>>)是右移表達(dá)式的位,不保留符號(hào)。2009-04-04javascript獲得當(dāng)前的信息的一些常用命令
這篇文章主要介紹了javascript獲得當(dāng)前的信息的一些常用命令,需要的朋友可以參考下2015-02-02javascript數(shù)據(jù)代理與事件詳解分析
所謂數(shù)據(jù)代理(也叫數(shù)據(jù)劫持),指的是在訪問(wèn)或者修改對(duì)象的某個(gè)屬性時(shí),通過(guò)一段代碼攔截這個(gè)行為,進(jìn)行額外的操作或者修改返回結(jié)果。比較典型的是 Object.defineProperty() 和 ES2015 中新增的 Proxy 對(duì)象2021-11-11