欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode 探索 初级算法 数组 第一题:删除排序数组中的重复项

程序员文章站 2022-07-12 23:18:20
...

问题:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

		public int removeDuplicates(int[] nums) {
		if(nums.length<1)
		{
			return 0;
		}
		int t = 0;
		
		for (int i = 0; i < nums.length; i++) {
			for (int j = i + 1; j < nums.length; j++) {
				if(nums[i]==nums[j])
				{
					int p=j+1;
					while(p<nums.length)
					{
						boolean flag = false;
						nums[j]=nums[p];
						for (int j2 = 0; j2 < j; j2++) {
							if(nums[j2]==nums[j])
							{
								flag = true;
								break;
							}
						}
						if(flag)
						{
							p++;
						}else
						{
							t++;
							break;
						}
					}
					j= nums.length-1;
				}else
				{
					boolean nosame =false;
					for (int j2 = 0; j2 < i; j2++) {
						if(nums[j2]==nums[j])
						{
							nosame=true;
							break;
						}
					}
					if(nosame==false)
					{
						t++;
					}else
					{
						int p =j+1;
						while(p<nums.length)
						{
							boolean flag = false;
							nums[j]=nums[p];
							for (int j2 = 0; j2 < j; j2++) {
								if(nums[j2]==nums[j])
								{
									flag = true;
									break;
								}
							}
							if(flag)
							{
								p++;
							}else
							{
								t++;
								break;
							}
						}
					}
					j= nums.length-1;
				}
			}
		}
		
		
		return t+1;


	}
相关标签: LeetCode探索