【每日一题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;
}

相关文章

Vuex.

Vuex.

一、Vuex来源及四大控件 1.了解vuex中的各个js文件的用途 官方解释...

我是如何实现时间自由

昨天的日志,璐璐在评论里说 “好想听你分享,如何实现时...

【行研资料】2021低碳科技白皮书——附下载

【行研资料】2021低碳科技白皮书——附下载

来源 | 阿里云 目前,全球约73%的碳排放来源于能源领域。2019年,全球能源相关的...

C语言基础分享——内存管理2

内存分配的三种方式:       静态存储区域分配:内存在...

事务(transaction)的四大特征

1.原子性(Atomicity)就是要么都完成,...

发表评论    

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