赞
踩
7月5日,今天是我在CSDN创作的第一天,在今后的日子里,希望可以多多努力创作出更多好的文章
力扣原题: link
题目:
例子:
许多小伙伴在解这题的时候,都会直接采用暴力解法,即
class Solution { public: int removeElement(vector<int>& nums, int val) { int size=nums.size(); for(int i=0;i<size;++i) { if(val==nums[i]) //如果在数组中查找到需要目标元素 { for(int j=i+1;j<size;++j) { nums[j-1]=nums[j]; //数组元素前移 } i--; //因为下标i以后的数值都往后移动了一位,所以i也需移动 size--; //数组个数-1 } } return size; } };
从双层循环就可以看出这很暴力,但是大家有没有想过如何使用一层for循环来实现呢,让解题变得高效又快速。接下来,就给小伙伴们讲讲这题如何用双指针来实现
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。