Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.39 KB | None | 0 0
  1. /*
  2.  * Complete the function below.
  3.  */
  4.  
  5.     static String[] findPotentialInsiderTraders(String[] datafeed) {
  6.        
  7.         ArrayList<String[]> values = new ArrayList<String[]>();
  8.         ArrayList<String[]> transactions = new ArrayList<String[]>();
  9.         HashMap flagged = new HashMap();
  10.         ArrayList<String> result = new ArrayList<String>();
  11.  
  12.         for (String line : datafeed) {
  13.             if (line.contains("|")) {
  14.                 String[] temp = line.split("\\|");
  15.                 //System.out.println(Arrays.toString(temp));
  16.                 if (temp.length == 2) {
  17.                     //System.out.println("x");
  18.                     values.add(temp);
  19.                 } else {
  20.                     transactions.add(temp);
  21.                 }
  22.             }
  23.         }
  24.  
  25.         for (String[] s : values) {
  26.             int index = values.indexOf(s);
  27.             String[] s1;
  28.             if (index+1 < values.size()) {
  29.                 s1 = values.get(index+1);
  30.             } else {
  31.                 break;
  32.             }
  33.             //System.out.println(Arrays.toString(s1));
  34.             for (String[] t : transactions) {
  35.                 if (Integer.parseInt(t[0]) >= Integer.parseInt(s1[0])-3 && Integer.parseInt(t[0]) < Integer.parseInt(s1[0])) {
  36.                     if (Integer.parseInt(s[1]) > Integer.parseInt(s1[1]) && t[2].equals("SELL")) {
  37.                         int profit = (Integer.parseInt(s[1]) - Integer.parseInt(s1[1])) * Integer.parseInt(t[3]);
  38.                         if (profit >= 500000 && !flagged.containsKey(t[1])) {
  39.                             flagged.put(t[1],0);
  40.                             result.add(t[0] + "|" + t[1]);
  41.                         }
  42.                     }
  43.                     if (Integer.parseInt(s[1]) < Integer.parseInt(s1[1]) && t[2].equals("BUY")) {
  44.                         int profit = (Integer.parseInt(s1[1]) - Integer.parseInt(s[1])) * Integer.parseInt(t[3]);
  45.                         if (profit >= 500000 && !flagged.containsKey(t[1])) {
  46.                             flagged.put(t[1],0);
  47.                             result.add(t[0] + "|" + t[1]);
  48.                         }
  49.                     }
  50.                 }
  51.             }
  52.         }
  53.        
  54.         String[] result1 = new String[result.size()];
  55.         for (int i = 0; i < result.size(); i++) {
  56.             result1[i] = result.get(i);
  57.         }
  58.         return result1;
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement