javac++的stl解决重复的元素


 java:
类似于c++的stl的unique的具体实现
class
Solution { public int removeDuplicates(int[] nums) { if (nums.length == 0) return 0; int i = 0; for (int j = 1; j < nums.length; j++) { if (nums[j] != nums[i]) { i++; nums[i] = nums[j]; //相当与在把不重复往前面移动
//如果在这里对nums【i】进行收集则就实现了remove的功能
} } return i + 1; } }

原地删除重复的元素:

class Solution {

public:

    int removeElement(vector<int>& nums, int val) {

        int i=0;

        for(int j=0;j<nums.size();++j)

            if(nums[j]!=val)

            {

                nums[i]=nums[j];

                i++;

            }

        return i;

    }

};
 


class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
         nums.erase(unique(nums.begin(),nums.end()),nums.end());
        return nums.size();
    }
};
原文地址:https://www.cnblogs.com/z2529827226/p/11747928.html