Description:
Given an array and a value, remove all instances of that value in-place and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
My code:
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
// 从下标0开始到最后,判断当前位是否为val,如果是,则使用Array.splice()把当前位去掉,同时再检测当前位是否与val相同,如果相同则继续splice,否则continue
let i = 0;
while(i < nums.length) {
if(nums[i] == val) {
nums.splice(i, 1);
}
if(nums[i] != val) {
i++;
} else {
continue;
}
}
return nums.length;
};
网友评论