Remove Duplicate Elements from Unsorted Array - Java Code
ฝัง
- เผยแพร่เมื่อ 23 ธ.ค. 2018
- Write a java program to remove duplicate elements from an unsorted array. In this tutorial, I have explained three approaches to solve this problem.
Reverse String - • Reverse a String in Ja...
Code Link: webrewrite.com/remove-duplica...
Binary Search Video Tutorial - • Binary Search | LeetCo...
Find second smallest number in an array without sorting - • Find Second Smallest N...
Remove duplicate from sorted linked list - • Remove Duplicates from...
Cracking the coding interview - amzn.to/3h70jXy
Data structure and algorithms made easy - amzn.to/3jgMl7U
LeetCode May Challenge PlayList - • First Bad Version | Fi...
LeetCode April Challenge PlayList - • Move Zeroes LeetCode |...
Paypal - www.paypal.me/programmingtuto...
Website - webrewrite.com/
Code Link: webrewrite.com/remove-duplica...
Very nice approach and explained very well. Subscribed. Thank you
Thank you.
These videos are a godsend. I don't normally comment, but you deserve my appraisal. Thank you!
Thank you Christopher.
In the first approach, what about the remaining 2 positions in the array? You left them empty. The original array is of length 7 and new array with only unique elements has a length of 5, so what about the remaining 2 positions in the array? Java doesn't allow dynamic arrays so the length of the array is not changing .
Explained very well. You are great.
Thanks a lot
In the first approach, every time the last element is getting added arr[j++]=arr[len-1], then if the last element is 5 and not 6 then 5 will again be added at the end and the output could be 1,2,4,5,5.
Hi Ranadheer, You missed that condition
if (arr[i] != arr[i + 1]) {
arr[j++] = arr[i];
}
In this condition, Second last element is already compared with last element. So, in that case second last element won't be added. You can run the code and check the output.
@@ProgrammingTutorials1M I am not talking about second last. Consider 5 as the last element and there is no 6. Then last element 5 has to be added to our output and our output would be 1,2,4,5 and 5.
@@ranadheersannihith2362 no man, you got it wrong.
arr = {1,2,4,4,5,5,5}
5 ! =5 is not satisfied till last element, so 5 will not be added to the array on iteration using for loop.
{1,2,4}
5 only gets added when we add manually last element of array.
arr = {1,2,4,5}
Hi All,
I tried for this input -> int[] arr = {4,2,1,5,5,6,7,8,8,9};
Its removing the duplicate values but was not printing the last value i.e., 9 in this example.
We need to use --> for (int i=0; i for (int i=0; i
Thank you so much!! for hashing and set the -1 must be removed, only keep it for the first code, which is great because I don't really understand why it needs to be -1
Very Good explanation.Thanks
You are welcome
With this approach the problem is with line no: 74. This will throw ArrayIndexOutOfBoundsException when the size of the array is 0. And it adds extra burden to handle last element of Array. We can certainly improve this.
Awesome approach sir! Searched a lot then found this video! Can you please say how to implement the 2nd and 3rd approaches in C++?
Hi Shreya, I know only java.
@@ProgrammingTutorials1M ok sir! Thank you!
Thank you so much😇😇 please upload more videos 🙏
I will try my best
The code is amazing. Thank you so much. Subscribed 😊😊
Can you please tell how to find the non repeating elements in the array? i.e the elements which occur only once.
Thanks for your comment. Here is the video link : th-cam.com/video/vx_snk6RQl0/w-d-xo.html
Awesome approch brother'❤️❤️❤️
Thanks ✌️
Code link is present in the description box
Good approaches. Is it possible to remove duplicates from unsorted array without using any collection. For example in O(1) or O(log n) space complexity
Hi Swapnil, O(1) and O(logn) might not be possible for unsorted array. You need to traverse complete array to figure out the duplicates.
Please make video on hackerrank problems.
Sir instead of void in method use type and return value beacause in every interview there ask this pattern ..
Yes, In my new videos i have implemented this approach. You can check it.
is first method is exactly crt for all the testcases....???
Yes
Sir the output is in ordered one..not in unordered one sir
what if we need to maintain the order of the array, how can we implement it without sorting the array?
You can do it by using set data structure.
But output is not in order
You changed the order sir
Why is the sorting important when trying to remove the duplicates from an array?
If you use LinkedHashSet instead of HashSet you can even retain the order.
Thanks sir
Welcome
we should you linkedhashset instead of simple hashset because order in not preserved .
If you want to preserve order then you can
thank you :)
You're welcome!
Can you use merge sort, and eject duplicates during merge routine? Or would all of those repeated shifts hurt the algorithm? I guess you can at least record the index of elements that are to be ejected during sorting.
But in this case the time complexity would be O(nlogn). There is a tradeoff between time and space here. Using extra space we can solve this problem in linear time.
make an empty set and insert all array value in that set it get sorted+remove duplicate as well
thanks me later
Thaaaaaaannnnnk you the j++ is a smart move !!! thanks
Please like and share with your friends.
Shabbaruoureyyyy shabana pureyyyy Heyyyyyyy shaburshaburaaa pureyyyyyyy
-> what it is
This is the lambda expression which is introduced in java 8.
gracias por el vídeo,fue fácil entenderte aunque no hablaras mi idioma xd
muchas gracias