27. 移除元素
2023-11-16
思路:双指针
class Solution { public int removeElement(int[] nums, int val) { //双指针 int j=0; for(int i=0;i<nums.length;i++){ if(nums[i]!=val){ nums[j]=nums[i]; j++; } } return j; } }
优化;
双指针优化
如果要移除的元素恰好在数组的开头,我们需要把每一个元素都左移一位。注意到题目中说:「元素的顺序可以改变」。
class Solution { public int removeElement(int[] nums, int val) { //双指针优化 //如果要移除的元素恰好在数组的开头,我们需要把每一个元素都左移一位。注意到题目中说:「元素的顺序可以改变」。 int l=0; int r=nums.length-1; while(l<r){ if(nums[l]==val){ nums[l]=nums[r]; r--; }else{ l++; } } return l+1; } }

浙公网安备 33010602011771号