在一數(shù)組中刪除特定數(shù)據(jù)
在一數(shù)組中刪除某一特定數(shù)據(jù)
一 問題描述:
在一個(gè)整型數(shù)組中刪除某一個(gè)特定數(shù)據(jù)。
二 問題分析:
(1)最簡單的方法:
遍歷數(shù)組,發(fā)現(xiàn)當(dāng)前的數(shù)據(jù)a[i]為特定數(shù)據(jù),則將i之后的數(shù)據(jù)依次前移一個(gè)位置,并減少數(shù)組的長度。
然后運(yùn)用相似的辦法,依次遍歷剩余的數(shù)據(jù)。
這樣的時(shí)間復(fù)雜度為o(n*n) ,而空間復(fù)雜度為o(n)。
(2)簡單方法:
內(nèi)存中維持兩個(gè)簡單變量num表示含有的特定數(shù)據(jù)的個(gè)數(shù),而len則表示數(shù)組的長度。
num初始化為0,然后每當(dāng)判斷為特定的數(shù)據(jù)時(shí),則執(zhí)行num++,len--。
對(duì)于非特定的數(shù)據(jù),則執(zhí)行a[i-num] = a[i],即將之后的數(shù)據(jù)前移,實(shí)現(xiàn)刪除功能。
時(shí)間復(fù)雜度為o(n) ,空間復(fù)雜度為o(n)。
三 代碼如下:









































posted on 2011-06-29 14:01 kahn 閱讀(1018) 評(píng)論(0) 編輯 收藏 引用