【leetcode 27】移除元素——两种解法

33 阅读1分钟

试用于 nums 中 等于val的数比较多的情况

function removeElement1(nums: number[], val: number): number {
  if (!nums || nums.length === 0) return 0;
 
  let l = 0;
  let r = 0;
  while (r < nums.length) {
    if (nums[r] !== val) {
      nums[l] = nums[r];
      l++;
    }
    r++;
  }
  return l;
}

试用于 nums 中 等于val的数比较少的情况

function removeElement(nums: number[], val: number): number {
  if (!nums || nums.length === 0) return 0;
 
  let l = 0;
  let r = nums.length;
  while (l < r) {
    if (nums[l] === val) {
      nums[l] = nums[--r];
    } else {
      l++;
    }
  }
  return l;
}