建立新陣列來解的方法: 文章看這
題目:
必須移除陣列中重複的數字(此鎮列為排序好的陣列),然後回傳新的陣列的長度。
不允許建立新的陣列。必須透過回傳一個固定的數字,來表示陣列的長度。
理解:
這邊我們會有一個排序好的陣列,排序好的意思是: 相同的數字會排在一起。
執行時注意有可能是空陣列或長度小於2(代表僅有一個數)
我們要回傳一個沒有重複數值的陣列長度。
實作邏輯:
- 若原本長度小於2,直接回傳
- 若後者數值與前者數值相同,使用
splice()
刪除後者
var removeDuplicates = function(nums) {
const length = nums.length
if (length < 2) {
return length
}
let i = 1
while (i < nums.length) {
if (nums[i] === nums[i-1]) {
nums.splice(i, 1)
} else {
i++
}
}
return nums.length
};
console.log(removeDuplicates([1,2,2,3,4,4]))