天天看点

leetcode刷题笔记 26.删除有序数组中的重复项【简单】

int removeDuplicates(vector<int>& nums) {
	int new_len = 0;
	if (nums.size() == 0) {
		return 0;
	}
	for (int i = 0; i < nums.size(); i++) {
		if (nums[new_len] != nums[i]) {
			new_len++;
			nums[new_len] = nums[i];
		}
	}
	return new_len + 1;
}
           

ps:也可以直接保存当前数值,避免反复查找数组,从而提高速度

int removeDuplicates(vector<int>& nums) {
	int new_len = 0;
	if (nums.size() == 0) {
		return 0;
	}
	int cur = nums[new_len];
	for (int i = 0; i < nums.size(); i++) {
		if (cur != nums[i]) {
			new_len++;
			cur = nums[i];
			nums[new_len] = cur;

		}
	}
	return new_len + 1;
}