LeetCode[27]移除元素
2024-01-07 18:27:27
- Description
给你一个数组?nums
?和一个值?val
,你需要?原地?移除所有数值等于?val
?的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用?O(1)
?额外空间并?原地?修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
- 解法1:快慢指针
int removeElement(vector<int>& nums, int val) {
int size = nums.size();
int slow = 0, fast = 0;
while(fast < size)
{
if(nums[fast] != val)
nums[slow++] = nums[fast++];
else
fast++;
/*
if(nums[fast] != val)
nums[slow++] = nums[fast];
fast++;
*/
}
return slow;
}
- 解法2
int removeElement(vector<int>& nums, int val) {
//remove并不能真正的删除目标元素,只会把元素往后移动
nums.earse(remove(nums.begin(), nums.end(), val), nums.end());
return nums.size();
}
文章来源:https://blog.csdn.net/weixin_44872774/article/details/107990744
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!