描述
給你一個(gè) 升序排列 的數(shù)組 nums ,請(qǐng)你 原地 刪除重復(fù)出現(xiàn)的元素,使每個(gè)元素 只出現(xiàn)一次 ,返回刪除后數(shù)組的新長(zhǎng)度。元素的 相對(duì)順序 應(yīng)該保持 一致 。然后返回 nums 中唯一元素的個(gè)數(shù)。
考慮 nums 的唯一元素的數(shù)量為 k ,你需要做以下事情確保你的題解可以被通過:
更改數(shù)組 nums ,使 nums 的前 k 個(gè)元素包含唯一元素,并按照它們最初在 nums 中出現(xiàn)的順序排列。nums 的其余元素與 nums 的大小不重要。
返回 k 。
示例
示例 1:
輸入:nums = [1,1,2]
輸出:2, nums = [1,2,_]
解釋:函數(shù)應(yīng)該返回新的長(zhǎng)度 2 ,并且原數(shù)組 nums 的前兩個(gè)元素被修改為 1, 2 。不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。
示例 2:
輸入:nums = [0,0,1,1,1,2,2,3,3,4]
輸出:5, nums = [0,1,2,3,4]
解釋:函數(shù)應(yīng)該返回新的長(zhǎng)度 5 , 并且原數(shù)組 nums 的前五個(gè)元素被修改為 0, 1, 2, 3, 4 。不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。文章來源:http://www.zghlxwxcb.cn/news/detail-421056.html
解題思路
采用雙下標(biāo)的方法,開始時(shí)src和des都指向數(shù)組起始位置,然后在比較文章來源地址http://www.zghlxwxcb.cn/news/detail-421056.html
代碼
int removeDuplicates(int* nums, int numsSize){
int src=0;
int des=0;
while(src<numsSize)
{
if(nums[src] !=nums[des])
{
++des;
nums[des]=nums[src];
}
++src;
}
return des+1;
}
到了這里,關(guān)于LeetCode26.刪除有序數(shù)組中的重復(fù)項(xiàng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!