タイトルアドレス
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
アイデア
この質問はO(n)の解です。速度を競う場合は剪定を意味します。
質問では、配列の新しい長さの背後にある要素を考慮する必要がないことに注意してください。説明は元のアレイを操作することです
解決策
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.empty()) return 0; // 别忘记空数组的判断
int index = 0;
for (int i = 0; i < (nums.size() - 1); i++){
if(nums[i] != nums[i + 1]) { // 一旦发现和前一个不相同,就把num[i+1] 赋值给 nums[++index]
nums[++index] = nums[i + 1]; // index = 0 的数据一定是不重复的,所以直接 ++index
}
}
return index + 1; //别忘了index是从0开始的,所以返回index + 1
}
};
私はコードジュニアです。私は長年BATで技術的な研究開発に携わっています。暇な時間をリートコードの再描画に費やしています。より独創的な記事については、「コードランダムノート」に注意してください。