題型解說
這是一題難度為簡單的題目
需要設計一個方法,此方法會傳入一個已經排好序的 int 陣列 nums
將這個陣列移除重複元素後把長度回傳
範例:
nums = [1,1,2],則回傳 2,因為元素 1 重複了
題中還要求不能另外建立陣列,必須使用原陣列進行操作
解題思路
這一題既然要求只能使用原陣列,那就只能把不重複的數字往前排
而且陣列已經幫我們排好序,那就準備一個 index 變數用來紀錄最後一個不重複元素的索引
之後跑一次迴圈,如果遇到與 index 索引指向的元素不相同的話,把 index + 1 後把元素覆蓋過去
跑完後就能傳回不重複數量
程式碼
Java
class Solution {
public int removeDuplicates(int[] nums) {
int index = 0;
for (int i = 1, len = nums.length; i < len; i++) {
if (nums[i] != nums[index]) {
index++;
nums[index] = nums[i];
}
}
return index +1;
}
}