Leetcode26,83题解
Contents
让一个指针去试探重复,另一个指针去记录不重复的元素
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.empty()){
return 0;
}
int fast = 0;
int slow = 0;
for (int i=0;i<nums.size()-1;i++) {
if (nums.at(fast) != nums.at(fast+1)) {
nums[slow] = nums.at(fast);
slow++;
}
fast++;
}
nums[slow] = nums.back();
slow++;
return slow;
}
};链表版本
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if (head == nullptr) {
return nullptr;
}
ListNode* slow = head;
ListNode* fast = head;
while (fast != nullptr) {
if (fast->val != slow->val) {
slow->next = fast;
slow = fast;
}
fast = fast->next;
}
slow->next = nullptr;// 断开后续的重复节点
return head;
}
};
Ciallo~(∠・ω< )