这篇也是凑数的 ...
题目 :
LeetCode 27.移除元素 :
27. 移除元素
分析 :
快慢指针 :
定义两个指针slow和fast,初始值都是0。Slow之前的位置都是有效部分,fast表示当前要访问的元素。
这样遍历的时候,fast不断向后移动:
- 如果nums[fast]的值不为val,则将其移动到nums[slow++]
- 如果nums[fast]的值为val,则fast继续向前移动,slow先等待
这样,前半部分是有效部分,后半部分是无效部分
解析 :
class Solution {
public int removeElement(int[] nums, int val) {
int slow=0;
for(int fast = 0;fast < nums.length; fast++){
if(nums[fast] != val){
nums[slow++] = nums[fast];
}
}
return slow;
}
}