#codingexercise
Count all increasing subsequences in a given integer array
{
int result[n];
for (int i = 0; i < n; i++ )
result[i] = 1;
for (int i = 1; i < n; i++ )
for (int j = 0; j < i; j++ )
if ( A[i] > A[j])
result[i] += result[j];
int count = 0;
   
for (int i = 0; i < n; i++ )
count += result[i];
return count
}
Count all increasing subsequences in a given integer array
Void  Combine(ref List<int> digits, ref List<int> b, int start, int level, ref int count) 
{ 
for (int I =start; I < digits.length; I++) 
{  
   if (b.contains(digits[i])== false){ 
     b[level] = digits[i]; 
     count += GetIS(b); 
  if (I < digits.length) 
    Combine(ref digits, ref b, m, start+1, level+1, ref count); 
  b[level] = '/0'; 
} 
int GetIS(List<int> A)
{
count = 0;
for (int i = 0; i < A.count; i++)
    for (int j = start; j < i; j++)
       if (A[i] < A[j])
           return count;
return 1;
}
Alternatively,
int GetCountIS(List<int> A, int n){
int result[n];
for (int i = 0; i < n; i++ )
result[i] = 1;
for (int i = 1; i < n; i++ )
for (int j = 0; j < i; j++ )
if ( A[i] > A[j])
result[i] += result[j];
int count = 0;
for (int i = 0; i < n; i++ )
count += result[i];
return count
}
No comments:
Post a Comment