【leetcode】26-删除排序数组中的重复项【C++】

    xiaoxiao2025-01-10  10

    题目如下:

    解题思路:

    遍历数组,跳过重复元素,设置一个计数器 flag 记录非重复元素。注意处理数组访问的边界情况。

    代码如下:

    class Solution { public: int removeDuplicates(vector<int>& nums) { int length = nums.size(); if(length == 0) //数组为空直接返回 return 0; int flag = 0; //计数器,记录非重复元素 for(int i = 1; i < length; i++){ //跳过重复元素 while(nums[i] == nums[flag]){ if(i < length - 1) //数组边界情况处理,避免数组访问越界 i++; else //最后几位元素全部相同,避免数组越界,例如{1、1、1、1} break; } //记录非重复元素 if(nums[i] != nums[flag]){ //判断是为了例如{1、1、1、1}等最后几位元素相同情况的特殊处理 flag++; nums[flag] = nums[i]; } } return (flag + 1); } };

     

    最新回复(0)