Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int removeDuplicates(vector<int>& nums) {
- if (nums.size() == 0)
- {
- return 0;
- }
- auto start = nums.begin(), end = nums.end();
- int last_value = *(nums.end() - 1);
- for (auto it = nums.begin(); it != end;)
- {
- int find_value = *it;
- auto upper = upper_bound(start, end, find_value); //Find the last occurring index of this number
- iter_swap(start, it);
- ++start;
- if ((upper != end) || ((upper == end) && (find_value == last_value)))
- {
- it = upper;
- }
- else
- {
- ++it;
- }
- }
- return distance(nums.begin(), start);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement