Fork me on GitHub

26. Remove Duplicates from Sorted Array

26. Remove Duplicates from Sorted Array

题目

 Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

Example:

Given nums = [1,1,2],

Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn't matter what you leave beyond the new length.

解析

  • 此题和在字符串中去掉某一元素类似str[j++]=str[i]
  • 此题说清楚了的,只是没有理解in-place算法意思
class Solution_26 {
public:
	 
	// 此题没有说清楚,return 长度;但是nums要是去掉重复元素的
	int removeDuplicates(vector<int>& nums) {
		if (nums.size()<2)
		{
			return nums.size();
		}
		//int cnt = 0; 
		//int j = 0;
		//for (int i = 1; i < nums.size();)
		//{
		//	if (nums[j] == nums[i])
		//	{
		//		i++;
		//	}
		//	else  //没有去掉重复元素
		//	{
		//		cnt++;
		//		j = i;
		//		i++;
		//	}
		//}
		//return cnt+1;

		int cnt = 1;
		for (int i = 1; i < nums.size();i++)
		{
			if (nums[i]!=nums[i-1])
			{
				nums[cnt++] = nums[i];
			}
		}
		return cnt;
	}

	int removeDuplicates1(int A[], int n) {
		if (n<2)
		{
			return n;
		}
		int cnt = 1;
		for (int i = 1; i < n;i++)
		{
			if (A[i]!=A[i-1])
			{
				A[cnt++] = A[i];
			}
		}
		return cnt;
	}
};


题目来源

posted @   ranjiewen  阅读(166)  评论(0编辑  收藏  举报
编辑推荐:
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
阅读排行:
· 开箱你的 AI 语音女友「GitHub 热点速览」
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(二):用.NET IoT库
· 几个自学项目的通病,别因为它们浪费了时间!
· C#钩子(Hook) 捕获键盘鼠标所有事件 - 5分钟没有操作,自动关闭 Form 窗体
· 特斯拉CEO埃隆.马斯克的五步工作法,怎么提高工程效率加速产品开发?
点击右上角即可分享
微信分享提示