面试经典150题 day2
- 题目来源
- 我的题解
- 方法一 双指针
题目来源
力扣每日一题;题序:27
我的题解
方法一 双指针
使用两个指针left和right分别指向最终数组的末尾和最终数组不需要的元素的最左侧。当nums[left]等于val,则将nums[right]替换nums[left],并将right减1。循环直到left>right。
时间复杂度:O(n)
空间复杂度:O(1)
public int removeElement(int[] nums, int val) {int left=0,right=nums.length-1;while(left<=right){if(nums[left]==val){nums[left]=nums[right];nums[right--]=0;//这个也可以不要,直接将right--放到上面}else{left++;}}return left;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~