美文网首页
27. 移除元素

27. 移除元素

作者: justonemoretry | 来源:发表于2020-06-22 23:26 被阅读0次

自己解法

这题和删除排序数组中重复的元素类似,都是将后面的元素往前移,所以只要维护好有效数组的下标就好了。

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;

    }

}

官方解法

双指针解法,一个指针前遍历,一个指针从后遍历,前面指针等于val时,用后面指针内容覆盖前面指针内容,后面指针减一,重新进行判断,直到两者相遇。

public int removeElement(int[] nums, int val) {

    int i = 0;

    int n = nums.length;

    while (i < n) {

        if (nums[i] == val) {

            nums[i] = nums[n - 1];

            // reduce array size by one

            n--;

        } else {

            i++;

        }

    }

    return n;

}

相关文章

  • 27. 移除元素 Remove Element

    27. 移除元素 Remove Element https://leetcode-cn.com/problems...

  • Leetcode 27. 移除元素

    Tags: Two Pointer,双指针,java,swift,javascript 题目 27. 移除元素 -...

  • Leetcode-27 移除元素

    27. 移除元素[https://leetcode-cn.com/problems/remove-element/...

  • 双指针

    27. 移除元素[https://leetcode.cn/problems/remove-element/] 难度...

  • 27. 移除元素

    内容 给定一个数组 nums和一个值 val,你需要原地移除所有数值等于 val的元素,返回移除后数组的新长度。 ...

  • 27. 移除元素

    题目 解析 题目意思不难理解,重点是思路,我刚拿到题目的时候,想的是数值匹配,只有出现了匹配的那就直接将数组后面的...

  • 27. 移除元素

  • 27. 移除元素

    20180928-摘抄自27. 移除元素 给定一个数组 nums 和一个值 val,你需要原地**移除所有数值等于...

  • 27. 移除元素

    27.移除元素 给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度...

  • 27. 移除元素

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 *val *的元素,返回移除后数组的新长度。...

网友评论

      本文标题:27. 移除元素

      本文链接:https://www.haomeiwen.com/subject/ufdqfktx.html