Remove Duplicates from sorted Array. Remove multiple occurrences of an element from array. Keep only one occurrence of each element. No multiple copies. Write a program to do this.
I was searched this problem in many websites not get this problem..but i see this problem in ur channel to understand very easily and learn clearly... Thank u brother 🙏
wow i watched so many video but no buddy explained to butter and not cover to all every concept but u clear all the concept all and i"m surprise i means wow ; I"m say to thank u to u " sat sat naman app ko Hindi me bole to "
I love how made the solution looked very simple. I wish you can treat more basic Java Algorithms so that i can understand several approaches to solving algorithms.
The last line causes ambiguous behaviour if there is no element in the array. i.e. the size of the array is zero. Also using constant space method the final array will be 1,2,3,4,3,3,4,4 as we are using the same array and we don't clear the memory for those.
One doubt here. While using same array to avoid duplicates j ended up with 3 here , then what happened to elements present in index 4,5,6,7 of array arr as we didn’t remove them in that array
There is an error in his explanation at least on the O(1). It should be a difference between the array his looping through AND a new array. He treating All as the same array.
#include void main(){ int n=8; int a[8]={1,2,2,3,3,3,4,4}; int j=0; for(int i=0 ; i < n-1 ; i++){ if(a[i]!=a[i+1]){ a[j]=a[i]; j++; } } a[j]=a[n-1]; for(int i=0 ; i < j+1 ; i++){ printf("%d" , a[i]); } } i think this works fine while printing we have to go till j+1 and not n when we do so we get the correct output but is there anyother method .
sir...in constant space method, u churn out output to be [ ]{ 1, 2 ,3 ,4}... but according to your expounded algorithm, output comes out to be [ ]{1,2,3,4, 3,3,4,4 } as deletion of redundant 3,3,4,4 never undergoes....plz explain???????????
// use j++ to store last element //c programe to remove the duplicates elements #include void remove_duplicate(int arr[],int n) //n=number of elements in an array { int j=0; //traversing element in an array for(int i=0; i
Great explanation sir ,but one small problem ,if the last element in the original array is duplicate to second last element in array ,then we have to check if arr[j] != original[n-1]
No you are wrong if last 2 elements are duplicate it will not consider the 2nd last element and it will get out of the loop and finally insert the last element in new array
Hi Vivek, What is the total time complexity for both the solutions. I believe that initially sorting the array will also take some time. So in this case can you please explain?
In the first approach zeros will be added at the end of the temp array as we are creating with the same size of the actual array. and int he second approach you didnt explain how to remove the last elements. Can you please add the code for the above in your git
In this case we can not go to the last index. Because we can not compare it to the next index after it, that is a not existing index. We have to break out from the loop before we get to the last index. But we can handle the problem with transferring the last index's element to the new array. the basic method: the length of the array is represented by n. in this case n = 9, it means we have 9 elements. this helps us beacuse as you see indexes in the array are starting from 0 to n - 1. In our case, 0, 1, 2, 3, 4, 5, 6, 7, 8, note that 8 = 9 - 1 (n - 1). and this means that if we are the 8th iteration, we will go inside the if conditions body, but after the 8th (again, n - 1) we break from the loop.
Hi Vivek, Can you do the same using hash tables. I am interested in known how to effectively create the hash function so that we dont have a large hashvalue. also how to avoid clash. Ex 0%20 is 0 and 20%20 is 0so using modulo is not that effective way of creating hash.
It will work. Nothing will be added during the for loop since the elements are same. But we add the last element outside the for loop which is 2 in your case. Hope you understood. If not, try using a pen and paper for each i.
sir I tried it was awesome but getting array elements from user input is not working please upload video from getting user input and then remove duplicate
Thank you. But one doubt In using extra space, what if the last element is 4 ( instead of 5 in the original array). Then the temp array would end up having 4 twice - pls correct me if I am wrong. Thank you for your help.
but if we use same array after filling the elements into array ,still will get duplicates after the loop in above example after filling the elements the index j is point to 3 and elements are filtered ,but if we display the array will get all elements after index 3 also,is this expected behavior
I was searched this problem in many websites not get this problem..but i see this problem in ur channel to understand very easily and learn clearly... Thank u brother 🙏
wow i watched so many video but no buddy explained to butter and not cover to all every concept but u clear all the concept all
and i"m surprise i means wow ;
I"m say to thank u to u
" sat sat naman app ko Hindi me bole to "
I love how made the solution looked very simple. I wish you can treat more basic Java Algorithms so that i can understand several approaches to solving algorithms.
sir take all interview probelms from geeksforgeeks and dicuss their algorithm and complexity
Plz help me bro...
I have to prepare for placements plz tell where should I refer
@@sahad_abd bro,i am not preparing for interview now😅
@@Gaurav-bv6xr plz suggest me brooo..just you know
@@sahad_abd prepare interview ques from geeksforgeeks
Thank you!!! very well explained!! wish we had a professor like you!!!
The last line causes ambiguous behaviour if there is no element in the array. i.e. the size of the array is zero.
Also using constant space method the final array will be 1,2,3,4,3,3,4,4 as we are using the same array and we don't clear the memory for those.
it's for sorted array
You didn't get his point. He's right, you will need to remove the remaining elements from the array after Jth position
Exactly.. I have tried.. the last elements remain in array..
That's right! We need to run a loop from jth+ 1 index till the last (n-1) and clear the remaining elements of the array.
@@tonmoyrakshit1717 Can u give the code to clea remaining elements
One doubt here. While using same array to avoid duplicates j ended up with 3 here , then what happened to elements present in index 4,5,6,7 of array arr as we didn’t remove them in that array
print array from 0 to j
@@gokulnathnallaiya7617 thanks buddy
Your way of teaching is awesome.
we need more problems solution on array, so update with some more problems.
Nice lecture sir keeping uploading this type of conceptual video
🥰🥰🥰🥰🙏🙏🙏🙏🙏🙏 Maja aa gaya 🙂
Thank you Sir for helping . I've been searching a lot for the logical explanation.
Very well explained, even small details are touched that others missed
We kept i
Your explanation technique is great 👍
You may want to slice of all the elements after j index, since you are doing in place replace.
correct, Even i have commented the same
sir really good and help me a lot
Very Good! Please discuss more complicated problems from GeeksforGeeks.
I feel sorry to say, but I wasn't able to get the result as you explained on the video(even though I have written the code as yours).
There is an error in his explanation at least on the O(1). It should be a difference between the array his looping through AND a new array. He treating All as the same array.
You need to start the loop from I=0;I
Thank you bro for your visualization of the problem and the solution is awesome. finally, I got it 🙏🏿
awesome explanation sir, hats off, keep uploading, thank you 👍👍👍👍🙂🙂🙂🙂
Very much helpful and can understand by anyone as explanation is very simple . Expecting to see the videos for java collections problems.
Very simple explanation sir
make these kinds of tricky questions which provide best solution for a particular problem
Nice explanation sir .. well done .. Thank u so much for crystal clear explanation👍
what a quality explanation!. big thanks for the effort
#include
void main(){
int n=8;
int a[8]={1,2,2,3,3,3,4,4};
int j=0;
for(int i=0 ; i < n-1 ; i++){
if(a[i]!=a[i+1]){
a[j]=a[i];
j++;
}
}
a[j]=a[n-1];
for(int i=0 ; i < j+1 ; i++){
printf("%d" , a[i]);
}
}
i think this works fine
while printing we have to go till j+1 and not n
when we do so we get the correct output
but is there anyother method .
sir...in constant space method, u churn out output to be [ ]{ 1, 2 ,3 ,4}...
but according to your expounded algorithm, output comes out to be [ ]{1,2,3,4, 3,3,4,4 } as deletion of redundant 3,3,4,4 never undergoes....plz explain???????????
same doubt
Since you know j=3, which means first 4 are distinct elements.
So you can use your unique values in the array by
for(int i = 0; i
Thanks for uploading it.. You are doing a great great job.. Please please upload more of such programming questions.. We really need it
// use j++ to store last element
//c programe to remove the duplicates elements
#include
void remove_duplicate(int arr[],int n) //n=number of elements in an array
{
int j=0;
//traversing element in an array
for(int i=0; i
Very good lesson !!
Liked the way you explained! Really Helpful.
Thank you well explained
thank you so mush you are brilliant and you have such a beautiful method of teaching
Thank you sir 🙏 everything is clear now
Great explanation sir ,but one small problem ,if the last element in the original array is duplicate to second last element in array ,then we have to check if arr[j] != original[n-1]
Agreed !!
No you are wrong if last 2 elements are duplicate it will not consider the 2nd last element and it will get out of the loop and finally insert the last element in new array
@@sdani9160 yes correct it will not take any of the duplicates from ending array
Hi Vivek,
What is the total time complexity for both the solutions. I believe that initially sorting the array will also take some time. So in this case can you please explain?
awesome tutorial sir
Thanks for the video. Something is missing at the end for the "in memory" case , test [1,2,3,3]
you need to add at the end
while j
good explanation sir
you are the loveliest indian ever.
Very good explanation
very clear and good writing on whiteboard
Very Well Explained .Thanks a lot
if the arr is 1 2 3 1 2 3 then its not able to find the duplicate that you discussed in the every last moment.
in first case the last element is 4
o/p becomes----1 2 3 4 4??
i++ j++ will not execute if duplicate found. Sort is required to place duplicate side by side.
you are completely ossum sir!!
thanks brother amazing...
Very clear and understandable! thanks!
Good explanation buddy, a just one quick question to you. What if the last value is 4 instead of 5 then?
there is something wrong with this algo.... use arr[j++]=arr[i] and arr[j++]=arr[n-1]
@@dev_manish, the algo is wrong!
Awesome Explanation thank you sir
Very helpful. Thank you very much.
Thank you so much sir❤
its really very helpful..Thanks
In the first approach zeros will be added at the end of the temp array as we are creating with the same size of the actual array. and int he second approach you didnt explain how to remove the last elements. Can you please add the code for the above in your git
shout out to you bro, I hope someone posted you on national boyfriend day
the Solution does not work for constant space arr= [1,1,2] as J value remains 1 and hence when we want to print the array form 0 to j it will fail.
Thank you, I have a question sir what is the n-1 stands for inside the for loop? Thank you
In this case we can not go to the last index. Because we can not compare it to the next index after it, that is a not existing index. We have to break out from the loop before we get to the last index.
But we can handle the problem with transferring the last index's element to the new array.
the basic method:
the length of the array is represented by n. in this case n = 9, it means we have 9 elements.
this helps us beacuse as you see indexes in the array are starting from 0 to n - 1. In our case, 0, 1, 2, 3, 4, 5, 6, 7, 8, note that 8 = 9 - 1 (n - 1).
and this means that if we are the 8th iteration, we will go inside the if conditions body, but after the 8th (again, n - 1) we break from the loop.
Second last elements
Can anybody explain what is the time complexity of this algorithm?
Thanks a lot, Sir!! Simplified explanation..:)
Great explanation. Thanks!
thank you sir..please post more..we will be very thakfull sir
great explanation!
Thanks sir .. really helpful
Thanks a lot
What if the duplicate of 2 is place on the last place on array list
Janis Paloma - hi, the question n solution is on sorted array.
Thank you very much sir...
nice video thanks
Good work.really helpful
what about 1,2,2,3,3,1,4,4.... can we apply this algo in situation?
if we keep modifying the same array will the size of the array change?
Sir nice explanation
Hi Vivek, Can you do the same using hash tables. I am interested in known how to effectively create the hash function so that we dont have a large hashvalue. also how to avoid clash. Ex 0%20 is 0 and 20%20 is 0so using modulo is not that effective way of creating hash.
Thank you
Why can't we use just list(set(arr))???
Thank you sir
Very nice Sir thank you
sir If the duplicates are not in consecutive then what we have to do?
Sir output kuda print cheyyochu kadha sir
it is applicable onely numbers are followed some order. it is not work dis order array
//Remove duplicates from Array
let arr = [1,2,3,2,4,3,5];
let res = getResult(arr);
function getResult(arr){
let obj = {};
let res = [];
for(let i=0;i
nicely explained.thanks
Hi Vivek, pls explain, how to remove the eliments of linked list which is having sum is equals to zero
Super class....
Thank you so much sir
thanks'
Very nice
Hi Vivek,
Here one more step is needed to remove other elements from array from Jth position,
Sir but if all the elements are same this code will not work
For example if array elements are:2 2 2 2 2
It will work.
Nothing will be added during the for loop since the elements are same. But we add the last element outside the for loop which is 2 in your case.
Hope you understood. If not, try using a pen and paper for each i.
sir I tried it was awesome but getting array elements from user input is not working please upload video from getting user input and then remove duplicate
If last element and before element are equal what is the code sir
Vivekanand sir
can i get java pgm for this ??
Hi I really appreciated your video. But one question, what does n - 1 mean?
Zohaib Shahzad n is total number of array elements
if a[10] then n is 11 cause index of array starts from 0
-1 the length of the array
Can someone show how can we print the temp[j]...
Thank you. But one doubt In using extra space, what if the last element is 4 ( instead of 5 in the original array). Then the temp array would end up having 4 twice - pls correct me if I am wrong. Thank you for your help.
replace i
Your explanation is nice. But you are not checking for last element. if Last element is unique , your program will not work..
thanks a lot
where is n even initialized here? is n the number of elements or what is n?
N is the length(size of) of array. But, I'm confused too why he put that else statement, I think it doesn't necessarry
good quality education.
Where your printing new array
but if we use same array after filling the elements into array ,still will get duplicates after the loop
in above example after filling the elements the index j is point to 3 and elements are filtered ,but if we display the array will get all elements after index 3 also,is this expected behavior
I think we have to add arr[j++] =arr[n-1] if last two elements of array are same in constant space method
Sir would uh please say the same algorithm for 30,28,28,98,70,30 what if 1st element and last element is same
We change it to be an sorted array first, then do same stuff like this tutorial
Well in that case, I think it can be done with nested for loop. No need to sort the array