leetcode26
去掉整形數組中重復的值涧狮,給出[1,1,2]返回[1,2]的數組長度
思路:主要考察對object的使用,object的key值是唯一的冒滩。
var removeDuplicates = function(nums) {
var hashTable={};
var res=[];
for(var i=0;i<nums.length;i++){
if(!hashTable[nums[i]]){
hashTable[nums[i]]=true;
res.push(nums[i]);
}
}
return res.length;
};
但是若只能在nums上做改變則不能使用上述這種方法猿棉。設置一個id,來記錄符合要求的數值抽高。
function(nums){
var id=1;
for(var i=1;i<nums.length;i++){
if(nums[i] != nums[i-1]){
nums[id++]=nums[i]
}
}
return id;
}
leetcode27
去掉定一個數組和一個值,刪除該值的所有實例课锌,并返回新的長度
思路是同上的厨内,但是一開始享用splice刪除祈秕,發(fā)現刪除后改變了數組的長度,這樣下一次循環(huán)就遍歷不到往前移的數了雏胃。
var removeElement = function(nums, val) {
var id=0;
for(var i=0;i<nums.length;i++){
if(nums[i]!=val){
//nums.splice(i,1);
nums[id++]=nums[i];
}
}
return id;
};