/*
 * @lc app=leetcode.cn id=27 lang=javascript
 *
 * [27] 移除元素
 * 使用快慢指针
 * 慢指针指向新数组的最后一个索引
 * 快指针用来找非目标元素,找到之后将其赋值给慢指针指向的位置
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
var removeElement = function (nums, val) {
  let short = 0;

  for (let fast = 0; fast < nums.length; fast++) {
    if (nums[fast] !== val) {
      nums[short] = nums[fast]
      short++
    }
  }
  return short;
};
// @lc code=end

console.log(removeElement([3, 2, 2, 3], 3))