git-osp-for-beginners icon indicating copy to clipboard operation
git-osp-for-beginners copied to clipboard

Remove Duplicates from Sorted Array [C++-Solution required]

Open aditya109 opened this issue 4 years ago • 9 comments

Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same.

Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements after removing the duplicates, then the first k elements of nums should hold the final result. It does not matter what you leave beyond the first k elements.

Return k after placing the final result in the first k slots of nums.

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

Custom Judge:

The judge will test your solution with the following code:

int[] nums = [...]; // Input array
int[] expectedNums = [...]; // The expected answer with correct length

int k = removeDuplicates(nums); // Calls your implementation

assert k == expectedNums.length;
for (int i = 0; i < k; i++) {
    assert nums[i] == expectedNums[i];
}

If all assertions pass, then your solution will be accepted.

Example 1:

Input: nums = [1,1,2]
Output: 2, nums = [1,2,_]
Explanation: Your function should return k = 2, with the first two elements of nums being 1 and 2 respectively.
It does not matter what you leave beyond the returned k (hence they are underscores).

Example 2:

Input: nums = [0,0,1,1,1,2,2,3,3,4]
Output: 5, nums = [0,1,2,3,4,_,_,_,_,_]
Explanation: Your function should return k = 5, with the first five elements of nums being 0, 1, 2, 3, and 4 respectively.
It does not matter what you leave beyond the returned k (hence they are underscores).

Constraints:

  • 0 <= nums.length <= 3 * 104
  • -100 <= nums[i] <= 100
  • nums is sorted in non-decreasing order.

aditya109 avatar Oct 03 '21 13:10 aditya109

Hello @aditya109 ; I want to contribute in C++, please assign this issue to me.

Mayankjha997 avatar Oct 03 '21 13:10 Mayankjha997

I would like to write the c++ solution. Please Assign this issue to me I will write solutions with both using STL and without using STL with plenty of comments to understand

AyushKoul00 avatar Oct 04 '21 06:10 AyushKoul00

@aditya109 Hi, I would like to contribute to this, Please assign this issue to me.

Amdbase1 avatar Oct 04 '21 06:10 Amdbase1

Hi @Mayankjha997 ! I have assigned this issue to you. Before raising a PR, please take a look at CONTRIBUTING.md and follow the guidelines. Also, if it is not too much to ask, please consider starring ⭐ the repository. It helps boost the repo popularity and guide more people towards active contribution. That is all. Happy hacking !

aditya109 avatar Oct 05 '21 17:10 aditya109

Hi @AyushKoul00 @Amdbase1 ! You can still raise PR for this issue. Just adhere to CONTRIBUTING.md and do your changes. Your PR will be reviewed and merged if you'd have done everything correctly. Happy hacking !

aditya109 avatar Oct 05 '21 17:10 aditya109

As it has been 8 days and no response from the previous assignee, hence clearing the assignee @Mayankjha997 ! 💔

aditya109 avatar Oct 10 '21 06:10 aditya109

I am not sure where to write the PR. So I will just put my code here:

//Own implementation
int removeDuplicates(vector<int> &a)
{
	int count = 0;
	for (int i = 1; i < (int)a.size(); i++)
	{
		if (a[i] == a[i - 1])
			count++;
		else
			a[i - count] = a[i];
	}
	return a.size() - count;
}

//using STL
int removeDuplicates(vector<int> &a)
{
	a.resize(unique(a.begin(), a.end()) - a.begin());
	return a.size();
}

AyushKoul00 avatar Oct 10 '21 06:10 AyushKoul00

Hi @AyushKoul00 ! You can't leave your code here. Please take a look at CONTRIBUTING.md and follow the guidelines. Also, if it is not too much to ask, please consider starring the repository. It helps boost the repo popularity and guide more people towards active contribution. That is all. Happy hacking !

aditya109 avatar Oct 10 '21 07:10 aditya109

Also, if you need more help please raise your concern in discussions so that any one of the contributors reach out to you. https://github.com/aditya109/git-osp-for-beginners/discussions/categories/general

aditya109 avatar Oct 10 '21 07:10 aditya109