Leetcode --- NO.27 移除元素(Java)

题目描述

在这里插入图片描述
在这里插入图片描述

题目分析

  • 这道题就是要将给定的数组内的某个指定元素删除掉,然后返回删除某个指定元素之后的新数组长度
  • 而且只能在原数组进行改动,不能创建新的数组

解法分析

  • 逐个判断,如果跟指定的元素相等,就删除该元素
  • 删除时可以采用元素左移(适用于数组元素较少时),也可以用双指针法(一个指向遍历的元素,一个指向当前要被覆盖的元素位置)

代码

  • 双指针
class Solution {
    public int removeElement(int[] nums, int val) {
        int i = 0;
        for(int j=0; j<nums.length; j++){
            if(nums[j] != val){
                nums[i++] = nums[j];
            }
        }
        return i;
    }
}
  • 还有一种官方解法,把尾部的元素用来填充需要删除的元素位置适用于元素很少时

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Kobe_k/article/details/107360110
今日推荐