Java輸入一串?dāng)?shù)字存入數(shù)組 C 刪除數(shù)組里重復(fù)數(shù)字?
C 刪除數(shù)組里重復(fù)數(shù)字?您可以使用雙循環(huán)逐個(gè)比較元素。如果有重復(fù),請(qǐng)刪除它們。其思路如下:1。2對(duì)于任何元素,依次將其與以前的元素進(jìn)行比較,如果存在重復(fù)的元素,則將其刪除。三。刪除操作可以將后續(xù)元素
C 刪除數(shù)組里重復(fù)數(shù)字?
您可以使用雙循環(huán)逐個(gè)比較元素。如果有重復(fù),請(qǐng)刪除它們。其思路如下:1。2對(duì)于任何元素,依次將其與以前的元素進(jìn)行比較,如果存在重復(fù)的元素,則將其刪除。三。刪除操作可以將后續(xù)元素逐個(gè)向前移動(dòng),達(dá)到覆蓋當(dāng)前元素的效果。在此基礎(chǔ)上,我們可以進(jìn)行一些優(yōu)化,即不需要每次刪除元素時(shí)都將所有元素前移,而是將需要保留的元素放在“應(yīng)該”位置,這樣可以提高效率。以整數(shù)數(shù)組為例,參考代碼如下:intremove_urepeat(int*a,Intl)//對(duì)起始地址為a,長(zhǎng)度為L(zhǎng)的數(shù)組進(jìn)行去重,以返回值的形式返回新的長(zhǎng)度。{inti,J,r=0//I,J是循環(huán)下標(biāo),r是重復(fù)數(shù)據(jù)消除后的元素總數(shù),初始值為0For(I=0I<li){for(J=0j<rj)//檢查是否有重復(fù)if(a[J]==a[I])breakif(J==R)//沒(méi)有重復(fù)元素a[R]=a[I]//將當(dāng)前元素放在重復(fù)數(shù)據(jù)消除數(shù)組的尾部,重復(fù)數(shù)據(jù)消除后增加總數(shù)。}Returnr//返回新的長(zhǎng)度。}