Leetcode 026 删除有序数组中的重复项

https://leetcode.cn/problems/remove-duplicates-from-sorted-array/description/

/*
 * @lc app=leetcode.cn id=26 lang=cpp
 * @lcpr version=30204
 *
 * [26] 删除有序数组中的重复项
 */


// @lcpr-template-start
using namespace std;
#include <algorithm>
#include <array>
#include <bitset>
#include <climits>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <queue>
#include <stack>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
// @lcpr-template-end
// @lc code=start
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int l = 1; int r = l;
        while (l < nums.size() && r < nums.size()) {
            if (nums[l] <= nums[l - 1]) {
                int limit = nums[l - 1]; r = l + 1;
                while (r < nums.size() && nums[r] <= limit) { r++; }
                if (r < nums.size()) nums[l] = nums[r];
                else {
                    break;
                }
            }
            l++;
        }

        return l;
    }
};
// @lc code=end



/*
// @lcpr case=start
// [1,1,2]\n
// @lcpr case=end

// @lcpr case=start
// [0,0,1,1,1,2,2,3,3,4]\n
// @lcpr case=end
 */

posted on 2024-09-11 11:57  itdef  阅读(27)  评论(0)    收藏  举报

导航