题解 | #删除升序数组的重复元素(一)#
删除升序数组的重复元素(一)
http://www.nowcoder.com/practice/fa2ea5ccf0394596b4d7829b17b096ca
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int reArrangeArray(vector<int>& nums) {
// write code here
int n = nums.size();
for (int i=1; i<n; ++i) {
if (nums[i-1] == nums[i]) {
nums[i-1] = 0;
}
}
int index1 = 0, index2 = 0;
while (index2 < n) {
while (index1 < n && nums[index1] != 0) {
++index1;
}
index2 = index1;
while (index2 < n && nums[index2] == 0) {
++index2;
}
if (index2 < n) {
swap(nums[index1], nums[index2]);
++index1;
++index2;
}
}
nums.resize(index1);
return nums.size();
}
};