題目描述:
給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。
示例:
給定陣列 nums =[1,1,2],函式應該返回新的長度2, 並且原陣列 nums 的前兩個元素被修改為
1, 2
。
給定nums =[0,0,1,1,1,2,2,3,3,4],函式應該返回新的長度5, 並且原陣列 nums 的前五個元素被修改為
0, 1
,2
,3
,4
。
題目詳解:
首先,我們
我們應該建立兩個陣列,乙個用來盛放最開始初始化元素的陣列,另乙個用來盛放刪除重複元素之後的陣列:
#include
using namespace std;
int main()
接下來,我們刪去重複元素的陣列:
int k=1;
b[0]=a[0];
for(int i=1;i=0;j--)
if(j==0)//迴圈到最後也沒有發現該元素與之前元素重複,則將此元素賦值給b陣列//}}
最後輸出元素:
for(int i=0;i我將此語句:if(j==0)
{b[k]=a[i];
k++;
寫為:whlie(j==0)
b[k]=a[i];
k++;
導致該語句一直在迴圈體中,所以程式出現錯誤
刪除排序陣列中的重複項
給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1...
刪除排序陣列中的重複項
給定陣列 nums 1,1,2,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1,2。你不需要考慮陣列中超出新長度後面的元素。給定 nums 0,0,1,1,1,2,2,3,3,4 函式應該返回新的長度 5,並且原陣列 nums 的前五個元素被修改為 0,1,2,3,4。...
刪除排序陣列中的重複項
考慮列表為空為只有乙個元素的情況 if nums is none or len nums 1 return len nums i 1 while i len nums 遍歷陣列,如果當前值跟前面的值相等,則刪除當前元素,如果不等,說明不是重複元素,則繼續遍歷下乙個元素 if nums i nums ...