Skip to content

Instantly share code, notes, and snippets.

@hueitan

hueitan/taller.md

Last active Aug 29, 2015
Embed
What would you like to do?
circle standing, who is taller challenge - https://codefights.com/feed/wG7zrPuKNMb9ppua6

Original answer

function Taller (N,M) {

var output = [];
// check every element
for (i=0;i<N;i++) {
   
   var temp = [];

   // check left
   for (j=i-1;;j--) {
       //
       if (j==i) {
           temp.push(-1);
           break;
       }
       // -1
       if (j==-1) {
           j = N;
       }
       // [0,N-1]
       else if (M[j]>M[i]) {
           temp.push(j+1);
           break;
       }
       
   }

   // check right
   for (j=i+1;;j++) {
       //
       if (j==i) {
           temp.push(-1);
           break;
       }
       // -1
       if (j==N) {
           j = -1;
       }
       // [0,N-1]
       else if (M[j]>M[i]) {
           temp.push(j+1);
           break;
       }
   }

    output.push(temp);
}

return output;
}

156 char

function Taller (N,M) {

o = []
i = 0


for (;i<N;) {
  
   j = i - 1
   p = -1
   k = 0
   t = [p,p]
   
   for (;j!=i;) {
       
       if (j<0) 
           j = N
       
		
       if (j>N) 
           j = -1
       
     
       if (M[j]>M[i]) {
           t[k++] = j + 1
           j = i 
           p = 1
           if (k==2) break
       }
     
       j += p
       
   }

    o[i++] = t

}

return o
}

-> 153 char

function Taller (N,M) {

o = []
i = 0


while(i<N){
  
   j = i - 1
   p = -1
   k = 0
   t = [p,p]
   
   while (j!=i) {
         
       if (j<0) 
           j = N
       
		
       if (j>N) 
           j = -1
       
     
       if (M[j]>M[i]) {
           t[k++] = j + 1
           j = i 
           p = 1
       }
     
       j += p
       
       k > 1 ? j=i: ''

   }

    o[i++] = t

}

return o
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.