【LeetCode刷题笔记92-26.删除有序数组中的重复项】

题目:
【LeetCode刷题笔记92-26.删除有序数组中的重复项】_第1张图片
今天这题发出来其实是为了提醒自己可以使用algorithm里面的函数,一些笔试里面就没有必要自己再去写这种函数了。

今天这题按照他的要求做就可以了,直接使用双指针。
不过使用函数distance和unique的话,一行就能写完

#include
#include
#include

using namespace std;

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
//		int i=0;
//		int j=1;
//		int n= nums.size();
//		if(n==0){
//			return 0;
//		}
//		while(j
//			if(nums[i]==nums[j]){
//				j++;
//			}else{
//				i++;
//				nums[i] = nums[j];
//				j++;
//			}
//		}
//		return i+1;
//    }
    return distance(nums.begin(), unique(nums.begin(), nums.end()));
	}
};

int main(){
	vector<int> a = {0,0,1,1,1,2,2,3,3,4};
	Solution solution;
	cout<<solution.removeDuplicates(a)<<endl;
	for(auto& elem:a){
		cout<<elem<<" ";
	}
}

你可能感兴趣的:(算法,leetcode,c++,算法)