public class Muutos { public static void main(String[] args) { int[] t = {1,2,3,-1,-2,-3,-3,2,2}; int[] c = annaMuutossuunnat(t); System.out.println(annaPisinMuutos(c)); } /** * Palauttaa muutostaulukon, johon on sijoitettu arvot periaattella: * m[i] = -1, jos t[i] > t[i+1] * m[i] = 0, jos t[i] == t[i+1] * m[i] = 1, jos t[i] < t[i+1] * * AE: t != null */ public static int[] annaMuutossuunnat(int[] t) { int[] m = new int[t.length-1]; for (int i = 0; i < m.length; i++) { if (t[i] > t[i+1]) m[i] = -1; if (t[i] == t[i+1]) m[i] = 0; if (t[i] < t[i+1]) m[i] = 1; } return m; } /** * Laskee pisimmän yhtäjaksoisen muutosjakson pituuden. * * AE: m != null */ public static int annaPisinMuutos(int[] m) { int pisin = 0; int apu = m[0]; for (int i = 1; i < m.length; i++) { if (m[i] == apu) pisin = pisin + 1; else apu = m[i]; } return pisin; } }