Skip to content

Instantly share code, notes, and snippets.

@Reflej0
Created September 9, 2018 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Reflej0/5fafd6173b89511149f8cbbac7609028 to your computer and use it in GitHub Desktop.
Save Reflej0/5fafd6173b89511149f8cbbac7609028 to your computer and use it in GitHub Desktop.
secuenciaCiclica private
package Ejercicio;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
public class Ejercicio
{
public static void main(String[] args)
{
int[] v = {-2, 0, -1};
boolean resultado = secuenciaCiclica(v);
System.out.println(resultado);
}
/* 113 caracteres sin static.
*/
static boolean secuenciaCiclica(int[]v)
{
int l=v.length-1,e=0,i=0;
for(;i<l;)
e+=v[i]>v[++i]?1:0;
e+=v[l]>v[0]?1:0;
return e<2;
}
@Test
public void test1()
{
int[] v = {5, 9, 1, 2, 4};
boolean resultado = secuenciaCiclica(v);
Assert.assertEquals(resultado, true);
}
@Test
public void test2()
{
int[] v = {1, 3, 2};
boolean resultado = secuenciaCiclica(v);
Assert.assertEquals(resultado, false);
}
@Test
public void test3()
{
int[] v = {1, 4, 10, -2, 0};
boolean resultado = secuenciaCiclica(v);
Assert.assertEquals(resultado, true);
}
@Test
public void test4()
{
int[] v = {-2, 0, -1};
boolean resultado = secuenciaCiclica(v);
Assert.assertEquals(resultado, false);
}
@Test
public void test5()
{
int[] v = {1};
boolean resultado = secuenciaCiclica(v);
Assert.assertEquals(resultado, true);
}
}
/*public static void print(int a[], int n, int ind)
{
for (int i = ind; i < n + ind; i++)
System.out.print(a[(i % n)] + " ");
}*/
/* 1) Guardo el .length en una variable porque al usarlo varias veces economizo espacio.
* 2) Busco el menor del array.
* 3) Busco el indice del menor.
* 4) Parto desde el menor haciendo el vector circular viendo si esta ordenado.
* */
/*static boolean secuenciaCiclica(int[]v)
{
int n=v.length;
int[] x = Arrays.copyOf(v, n);
Arrays.sort(x);
int m=x[0];
for(int i=0;i<n;i++)
if(m==v[i])
{
m=i;
i=100;
}
for(int i=m;i<n+m-1;i++)
if(v[i%n]>v[(i+1)%n])
return 2<1;
return 2>1;
}
/* 162 caracteres sin static.
*/
/*static boolean secuenciaCiclica2(int[]v)
{
int n=v.length;
int i=0, m=v[0],p=0;
for(;i<n;i++)
if(m>v[i]){p=i;m=v[i];}
for(i=p;i<n+p-1;i++)
if(v[i%n]>v[(i+1)%n])
return 2<1;
return 2>1;
}*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment