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

问题:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 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					{
						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						{
							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初级算法)