题目:移除数组中重复的数据,返回数组的长度。不可以开辟新的数组
思路:1.设置变量j来计算数组的长度。
2.比较每个数组元素和前一个数组元素的值,是否相等。
3.若不相等,则该元素不变。数组的长度加1。
4.如此,相等的值将会被覆盖。
javascript代码如下:
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
var len=nums.length;
var i=1;
var j=Math.min(1,len);
for(i=1;i<len;i++){
if(nums[i]!==nums[i-1]){
nums[j++]=nums[i];
}
return j;
};
法二:思路:若元素和前一个元素相等,则将该元素删除。
var removeDuplicates = function(nums) {
var len=nums.length;
var i=1;
while(i<len && nums[i]!=null){
if(nums[i]===nums[i-1]){
nums.splice(i,1);
}else{
i=i+1;
}
}
return i;
};