Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4.  
  5. public class BellmanFord {
  6. List<Kaari> kaaret = new ArrayList<>(10000);
  7. public class Kaari {
  8. public String alku, loppu;
  9. int pituus;
  10.  
  11. public Kaari(String alku, String loppu, int pituus) {
  12. this.alku = alku;
  13. this.loppu = loppu;
  14. this.pituus = pituus;
  15. }
  16. }
  17.  
  18. @SuppressWarnings("Duplicates")
  19. public void lisaaTie(String alku, String loppu, int pituus) {
  20. Kaari kaari1 = new Kaari(alku, loppu, pituus);
  21. Kaari kaari2 = new Kaari(loppu, alku, pituus);
  22. kaaret.add(kaari1);
  23. kaaret.add(kaari2);
  24. }
  25.  
  26. public int bellmanFord(String alku, String loppu) {
  27. HashMap<String, Integer> etaisyys = new HashMap<>(kaaret.size());
  28. etaisyys.put(alku, 0);
  29. for (int i = 0; i < kaaret.size(); i++) {
  30. for (Kaari kaari : kaaret) {
  31. Integer nyky = etaisyys.getOrDefault(kaari.loppu, 10000000);
  32. Integer uusi = etaisyys.getOrDefault(kaari.alku, 10000000) + kaari.pituus;
  33. if (uusi < nyky) {
  34. etaisyys.put(kaari.loppu, uusi);
  35. }
  36. }
  37. }
  38. return etaisyys.getOrDefault(loppu, -1);
  39. }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement