You have given 2 array. You need to find whether they will
create the same BST or not.
For example:
Array1:10 5 20 15 30
Array2:10 20 15 30 5
Result: True
Array1:10 5 20 15 30
Array2:10 15 20 30 5
Result: False
One Approach is Pretty Clear by creating BST O(nlogn) then
checking two tree for identical O(N) overall O(nlogn) ..we
need there exist O(N) Time & O(1) Space also without extra
space .Algorithm ??
DevoCoder
guest
Posted 3 months ago #
#define true 1
#define false 0
int check(int a1[],int a2[],int n1,int n2)
{
int i;
//n1 size of array a1[] and n2 size of a2[]
if(n1!=n2) return false;
//n1 and n2 must be same
for(i=0;i<n1-1;i++)
{
if( !( (a1[i]>a1[i+1]) && (a2[i]>a2[i+1]) )
) return false;
}
return true;//assumed that each array doesn't contain
duplicate elements in themshelves
}
No Answer is Posted For this Question
Be the First to Post Answer
WHOT IS CHAR?
what is the difference between char * const and const char *?
What is indirection? How many levels of pointers can you have?
Can i use “int” data type to store the value 32768? Why?
main() { int i; printf("%d",((i=1)*i-- - --i*(i=-3)*i++ + ++i)); } ans is 24 bt how?pls tell smbody............
What is the full form of getch?
Explain the ternary tree?
what is the difference between exit() and _exit() functions?
How would you rename a function in C?
define switch statement?
How can a number be converted to a string?
the maximum value that an integer constant can have is a) -32767 b) 32767 c) 1.701e+38 d) -1.7014e+38