给定一个数组,你需要删除其中重复出现的元素,只保留最后一次出现的重复元素,使得每个元素只出现一次,返回新数组,并保证新数组中的元素顺序与原数组一致。
输入例子1:
[3,5,8,2,3,8]
输出例子1:
[5,2,3,8]
输入例子2:
[1,1,1,2,1]
输出例子2:
[2,1]
class Solution { public: /** * 删除重复元素 * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return int整型vector */ int maxV = 0xffff; bool isRepeat(int* array, int a, int length, int pos) { for(int i = 0;i < length;++i) { if(array[i] == a && a != maxV && i != pos) { return true; } } return false; } vector<int> removeDuplicate(int* array, int arrayLen) { vector<int> result; for(int i = 0;i < arrayLen;++i) { bool flag = isRepeat(array, array[i], arrayLen, i); if(flag) { array[i] = maxV; } } for(int i = 0;i < arrayLen;++i) { if(array[i] != maxV) { result.push_back(array[i]); } } return result; } };