#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Solution1 {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.empty()) return 0;
int index = 0;
for (int i = 1; i < nums.size(); i++) {
if (nums[index] != nums[i]) // 在不相等的地方 index用来修改nums i 用来遍历num查找不相等的值
{
nums[++index] = nums[i];
cout << index << " " << i << endl;
}
}
return index + 1; // index是从零开始
}
};
class Solution2 {
public:
int removeDuplicates(vector<int>& nums) {
return distance(nums.begin(), unique(nums.begin(), nums.end())); // 这返回的是距离吧
}
};
class Solution3
{
public:
int removeDuplicates(vector<int>& nums)
{
return distance(nums.begin(), removeDuplicates(nums.begin(), nums.end(), nums.begin()));
}
template<typename InIt, typename OutIt>
OutIt removeDuplicates(InIt first, InIt last, OutIt output)
{
while(first != last)
{
*output++ = *first;
first = upper_bound(first, last, *first);
}
return output;
};
};
int main()
{
Solution2 s;
vector<int> nums={1,1,1,2,2,3,3,4};
int indexs;
indexs = s.removeDuplicates(nums);
for(int i=0; i<nums.size(); i++)
{
cout << nums.size() << ": " << nums[i] << endl;
}
// cout<<indexs<<endl;
}
leetcode 26
最新推荐文章于 2024-10-24 21:03:37 发布