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 .
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}
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.
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
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
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.
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.
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 .
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}
Explained very well. You are great.
Thanks a lot
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.
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
i was searching for this comment
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!
Awesome approch brother'❤️❤️❤️
Thanks ✌️
Thank you so much😇😇 please upload more videos 🙏
I will try my best
Code link is present in the description box
If you use LinkedHashSet instead of HashSet you can even retain the order.
Whats the old syntax for traversing set bcoz im more comfortable at it but forgot 😅
But output is not in order
You changed the order sir
Sir the output is in ordered one..not in unordered one sir
Why is the sorting important when trying to remove the duplicates from an array?
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.
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.
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.
we should you linkedhashset instead of simple hashset because order in not preserved .
If you want to preserve order then you can
make an empty set and insert all array value in that set it get sorted+remove duplicate as well
thanks me later
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 : ua-cam.com/video/vx_snk6RQl0/v-deo.html
is first method is exactly crt for all the testcases....???
Yes
Please make video on hackerrank problems.
Shabbaruoureyyyy shabana pureyyyy Heyyyyyyy shaburshaburaaa pureyyyyyyy
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.
Thaaaaaaannnnnk you the j++ is a smart move !!! thanks
Please like and share with your friends.
Thanks sir
Welcome
thank you :)
You're welcome!
-> 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