Open H246802 opened 5 years ago
var removeDuplicates = function(nums) {
let obj = {}
let arr = []
for(let i = 0; i < nums.length; ++i){
if(!obj[nums[i]]){
obj[nums[i]] = true
arr.push(nums[i])
}
}
return arr.length
}
// 测试用例
var test = [];
for (var i = 0; i < 200; i++) {
test[i] = Math.floor(Math.random(0,1)*200+1)
}
console.time('test')
removeDuplicates(test)
console.timeEnd('test')
如果数组中存在对象,判断最好应该使用es6的map
var removeDuplicates = function(nums) {
let map= new Map()
let arr = []
for(let i = 0; i < nums.length; ++i){
if( !map.get(nums[i])){
map.set(nums[i],true)
arr.push(nums[i])
}
}
return arr.length
}
// 测试用例
var test = [];
for (var i = 0; i < 200; i++) {
test[i] = Math.floor(Math.random(0,1)*200+1)
}
console.time('test')
removeDuplicates(test)
console.timeEnd('test')
写一个方法,给定一个排序数组,在原数组上删除重复出现的元素,使得每个元素只出现一次,返回删除重复元素后的数组的长度
要求:
O(1)
额外空间的条件下完成示例: 给定数组
nums = [1, 1, 2, 3, 2, 5]
,函数应该返回新的长度 4,并且原数组nums
去除了重复出现的数字