問題:給定一個排序數(shù)組刺下,刪除重復(fù)出現(xiàn)的元素缤骨,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度狞贱。
例如:
給定 nums = [0,0,1,1,1,2,2,3,3,4],
函數(shù)應(yīng)該返回新的長度 5, 并且原數(shù)組 nums 的前五個元素被修改為 0, 1, 2, 3, 4垮斯。
解釋:在這里設(shè)置一個元素noDup=0,它指向nums的第0個元素,然后用下標(biāo)i遍歷數(shù)組只祠,檢查數(shù)組中其它元素兜蠕,看是否有與noDup指向元素的值相同,如果第i個位置的值與noDup相同抛寝,則不管它熊杨,因為我們要找的是非重復(fù)值, i繼續(xù)向后走,如果不相同盗舰,則我們需要將它復(fù)制到noDup現(xiàn)在所指元素的旁邊晶府,即noDup的后邊,所以noDup++,然后將新找到的元素放到noDup現(xiàn)在所指的位置钻趋,注意在noDup與i之間的值一定都是重復(fù)的值川陆,所以覆蓋了也沒關(guān)系。
算法及注釋如下:
算法