Appearance
移除指定元素 / removeElement
题目描述
从有序数组中原地删除指定的元素。
Code
javascript
function removeElement(nums, val) {
let fast = 0,
slow = 0;
while (fast < nums.length) {
// 确保 [0...slow] 都不包含 val
if (nums[fast] !== val) {
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
Test Cases
javascript
const { removeElement } = require('../docs/algo/array/removeElement');
describe('removeElement', () => {
it('case1', () => {
const nums = [1, 2, 3, 3, 3, 3, 4, 5];
const expectResult = [1, 2, 3, 4, 5];
const len = removeElement(nums, 3);
expect(len === expectResult.length);
for (let i = 0; i < len; i++) {
expect(nums[i] === expectResult[i]);
}
});
it('case2', () => {
const nums = [1, 6, 2, 7, 6, 8, 2, 3, 5];
const expectResult = [1, 2, 3, 4, 5];
const len = removeElement(nums, 6);
expect(len === expectResult.length);
for (let i = 0; i < len; i++) {
expect(nums[i] === expectResult[i]);
}
});
});