Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. /*
  2. public class Kierrokset {
  3. int laske(int[] t) {
  4. int kierrokset = 1;
  5. boolean t2[] = new boolean[t.length+2];
  6.  
  7. for (int i=0; i < t.length; i++) {
  8. if (t2[t[i]+1] == true) kierrokset++;
  9.  
  10. t2[t[i]] = true;
  11. }
  12. return kierrokset;
  13. }
  14. }*/
  15.  
  16. public class Kierrokset {
  17. int laske(int[] t) {
  18.  
  19. // Ideana on luoda aputaulukko, jossa kohta[x] ilmaisee, missä kohdassa
  20. // luku x esiintyy taulukossa. Tämän muodostaminen vie aikaa O(n). Tämän
  21. // jälkeen käydään läpi luvut keräysjärjestyksessä. Aina jos kerättävä
  22. // luku esiintyy taulukossa aiemmin kuin viimeksi kerätty luku, täytyy
  23. // aloittaa uusi kierros.
  24.  
  25. int n = t.length;
  26. int[] kohta = new int[n+1];
  27. for (int i = 0; i < n; i++) {
  28. kohta[t[i]] = i;
  29. }
  30. int tulos = 1;
  31. for (int i = 2; i <= n; i++) {
  32. if (kohta[i] < kohta[i-1]) tulos++;
  33. }
  34. return tulos;
  35. }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement