題目描述:
去除陣列中重複的元素 例如 1,2,2,3,3,4,5,6,6->1,4,5
實現思想:
簡單來說就是。如果當前元素是第乙個元素,只要比較它與後乙個元素是否相等,如果不相等,直接新增到新的陣列中。
如果當前元素不是第乙個元素,就比較它相鄰的左右兩邊的元素是否相等,如果不相等就新增。
詳細就是:
先找到乙個基準,假如是第乙個元素,定義乙個游標,指向第二個元素,然後遍歷陣列,讓基準與游標所指向的元素比較,如果相等,則游標移動一位,如果不相等,則修改基準為當前游標的值,然後比較游標的下一位與基準是否相等,如果相等,則繼續移動游標,如果不相等,則將基準新增到新的陣列中。但是會漏掉乙個元素不是重複元素的情況,因此還需特殊對待乙個元素。
public
class getoffer3 ;
list temp = remove(arr);
for (int i = 0; i < temp.size(); i++)
}private
static list remove(int arr)
int tem =arr[0];
int i=1;
list list = new arraylist();
if(tem!=arr[i])
while(iif(tem==arr[i])elseelse}}
return list;
}}
C 去除排序陣列中重複的元素
do not allocate extra space for another array,you must do this in place with constant memory.將排序陣列中重複的元素去除,並返回處理後陣列的長度。注意 需要將陣列中的元素去除掉。很暴力的演算法,由於是排序後的...
去除已排序陣列中的重複元素
給定乙個已排序的陣列,去除陣列中的重複元素,只保留乙個重複的元素,並且返回新的陣列長度。要求 不要給陣列分配額外的空間,你必須使用常量的記憶體大小進行原地操作。例如 給出陣列a 1,1,2 你的函式呼叫之後必須返回長度length 2,並且a現在變成 1,2 乙個已排序的陣列,例如 1,1,2 返回...
c c 去除陣列中重複的元素
第一層迴圈 0 到 len 1,當i為0,第二層迴圈j為 i 1即1 到 len 1,依次判斷是否 num i 和 num j 相等,如果相等則進入第三次迴圈,k為 j 1 到 len 1,將重複點 j 後面的所有元素都往前移動 1,並將陣列長度 len 1,j 也 1 判斷向前移動的元素們的第一位...