27. Remove Element

Leetcode link

题目简介

/**
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */

这题跟 26 有点像,题目给我们一个数字数组 nums 以及一个数字 val

要求我们将 nums 中不等于 val 的数字往前丢(修改原数组),最后返回有多少个不等于 val 的数字在数组中

解题思路

这题我们也需要用到两个指针来辅助

一个指针 target 负责指向最左边的等于 val 的元素下标

另一个指针 i 正常遍历数组

如果我们指针 i 遇到了不等于 val 的元素(nums[i] !== val),我们将 nums[i] 赋值给 nums[target],然后将 target++

最后我们返回 target 就是题目所求的不等于 val 的数字的数量

Javascript

/**
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
var removeElement = function (nums, val) {
    let target = 0

    for (let i = 0; i < nums.length; i++) {
        if (nums[i] !== val) {
            nums[target] = nums[i]
            target++
        }
    }
    return target
};

results matching ""

    No results matching ""