【每日一题026】leetcode-26

wuchangjian2021-11-05 07:33:49编程学习

目录

  • 题目
  • 思路
  • 相关思考
  • 代码(C++/力扣)

题目

题目来源
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

思路

按照考研时王道书里面的相关思路,利用两个变量i、j,分别表示处理元素和目前已有的元素个数(也可以是位置)

相关思考

一开始一直尝试使用count计数,然后用i+count的方法赋值,但是会出现i+count超出数组范围的情况。

代码(C++/力扣)

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

相关文章

DM8参数设置

DM8参数设置

数据库参数 DM 数据库的 ini 参数对于数据库的运行至关重要,不仅关...

MySQL-DQL——union联合查询

union 联合/合并:将多条查询语句的结果合并成一个结果 应用场景&#...

day28:图像分割

图像分割是指将图像中属于某一类的像素点与其他像素点分开, 例如&#x...

31.函数参数

位置参数,位置参数需要按照顺序 关键字参数   函数调用时,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。