給定一個(gè)有序數(shù)組,你需要原地刪除其中的重復(fù)內(nèi)容巫财,使每個(gè)元素只出現(xiàn)一次,并返回新的長度。
不要另外定義一個(gè)數(shù)組闽瓢,您必須通過用 O(1) 額外內(nèi)存原地修改輸入的數(shù)組來做到這一點(diǎn)接癌。
示例:
給定數(shù)組: nums = [1,1,2],
你的函數(shù)應(yīng)該返回新長度 2, 并且原數(shù)組nums的前兩個(gè)元素必須是1和2
不需要理會(huì)新的數(shù)組長度后面的元素
Java
class Solution {
public int removeDuplicates(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int length = 0;
for (int i = 1; i < nums.length; i++) {
if (nums[i] != nums[length]) {
nums[++length] = nums[i];
}
}
return length + 1;
}
}
Kotlin
class Solution {
fun removeDuplicates(nums: IntArray): Int {
if (nums.isEmpty()) {
return 0
}
var length = 0
for (i in 1 until nums.size) {
if (nums[i] != nums[length]) {
nums[++length] = nums[i]
}
}
return length + 1
}
}