How about doing like this ?. Without loss of generality, I can assume that numbers starts from 1 (if not, if it starts from ZERO, add by 1 to all the numbers, if it is negative, find the min value, assume it is X, add by (-X)+1))
Now assume numbers are M, compute the product of the numbers and compute M! and check if they are equal. does it work ? Thanks, Sathaiah On Wed, Jul 6, 2011 at 11:45 AM, Anantha Krishnan < [email protected]> wrote: > Check this > > *int isconsecutive(int a[], int n) {* > * if (n < 1) {* > * return 0;* > * }* > * int max = a[0], min = a[0];* > * int i = 0;* > * > * > * int *hash = (int*) calloc(n, sizeof (int));* > * > * > * //find min and max from the array* > * for (i = 1; i < n; i++) {* > * if (a[i] < min)* > * min = a[i];* > * else if (a[i] > max)* > * max = a[i];* > * }* > * > * > * if (max - min + 1 != n)* > * return 0;* > * > * > * for (i = 0; i < n; i++) {* > * if (hash[a[i] - min + 1] == 1)* > * return 0;* > * hash[a[i] - min + 1] = 1;* > * }* > * return 1;* > * > * > *}* > * > * > *int main(int argc, char** argv) {* > * > * > * int a[] = {-1, 0,1,2, 4, 3, 5};* > * int n = sizeof (a) / sizeof (a[0]);* > * printf("%d", isconsecutive(a, n));* > * > * > * return (EXIT_SUCCESS);* > *}* > > > On Sat, Jun 25, 2011 at 1:14 AM, ross <[email protected]> wrote: > >> Given an array, A, find if all elements in the sorted version of A are >> consecutive in less than O(nlogn). >> eg: A: 5 4 1 2 3 on sorting 1 2 3 4 5 all elements are consecutive -- >> true >> A: 1 9 2 22 on sorting 1 2 9 22 all elements are NOT consecutive - >> false >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
