題目鏈接:力扣(LeetCode)官網(wǎng) - 全球極客摯愛的技術(shù)成長平臺
?解題思路:因為數(shù)組有序,相等的元素一定相鄰,所以可以使用一個變量num統(tǒng)計相等元素的個數(shù),如果當(dāng)前元素和前一個元素相等,令num++。另外使用一個變量len記錄刪除后數(shù)組的新長度,如果當(dāng)前正在遍歷的元素出現(xiàn)的次數(shù)小于等于2,就令nums[len++] = nums[i],否則的話直接跳過這個元素,如果當(dāng)前元素和前面的元素不相等,就令num=0,重新進(jìn)行計數(shù),最終len就是返回的結(jié)果
AC代碼
class Solution {
public int removeDuplicates(int[] nums) {
int len=1;
int num = 0;
for (int i =1;i<nums.length;i++){
if (nums[i]!=nums[i-1]){
num=0;
nums[len++] =nums[i];
}else {
num++;
if (num<2){
nums[len++] = nums[i];
}
}
}
return len;
}
}
文章來源:http://www.zghlxwxcb.cn/news/detail-642212.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-642212.html
到了這里,關(guān)于80. 刪除有序數(shù)組中的重復(fù)項 II的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!