有序int陣列去重 c語言
阿新 • • 發佈:2019-01-29
for(int i = 1;i<numsSize;++i)
{
if(nums[i]==nums[i-1])
{
//從i-1~numsSize-1 都是重複的 只保留到i-1就可以了
if(nums[numsSize - 1]==nums[i-1])
{
numsSize = i;
break;
}
else if(nums[numsSize - 1] != last)//當前陣列最後的元素不是重複的
{
nums[i-1]= nums[numsSize - 1];
last = nums[numsSize - 1];
numsSize --;
}
else//當前陣列最後的元素是重複的,且已經替換到前面了or ==當前要替換的
{
numsSize --;
i--;
}
}
}
去重完畢後變成逆序陣列
初步測試沒有問題。