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
How to implement a packet in C
Taking an example,differentiate b/w loader and linker ?
Where static variables are stored in memory in c?
how does a general function , that accepts an array as a parameter, "knows" the size of the array ? How should it define it parameters list ?
What is the right type to use for boolean values in c? Is there a standard type?
What is a null pointer assignment error? What are bus errors, memory faults, and core dumps?
What is the difference between macros and inline functions?
write a addition of two no. program with out using printf,scanf,puts .
how to write a data 10 in address location 0x2000
A routine usually part of the operation system that loads a program into memory prior to execution a) linker b) loader c) preprocessor d) compiler
Explain the term printf() and scanf() used in c language?
int i=10; printf("%d %d %d", i, i=20, i);