您的位置:首页 > 其它

[Leetcode]_27 Remove Element

2017-05-15 22:15 387 查看
/**
*  Index: 27
*  Title: Remove Element
*  Author: ltree98
**/


记录不重复的序列号,然后往前并。

class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int index = 0, len = nums.size();
for(int i = 0; i < len ; i++)
if(nums[i] != val)
nums[index++] = nums[i];
return index;
}
};


从后往前遍历,如果是目标值,跟尾部的值交换(根据出现目标值的个数)

class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int repeat = 0, len = nums.size() - 1;

for(int i = len; i >= 0; i--)   {
if(nums[i] == val)  {
nums[i] ^= nums[len-repeat];
nums[len-repeat] ^= nums[i];
nums[i] ^= nums[len-repeat];
++repeat;
}
}

return (len - repeat + 1);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode