Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Complete the function below.
- */
- static String[] findPotentialInsiderTraders(String[] datafeed) {
- ArrayList<String[]> values = new ArrayList<String[]>();
- ArrayList<String[]> transactions = new ArrayList<String[]>();
- HashMap flagged = new HashMap();
- ArrayList<String> result = new ArrayList<String>();
- for (String line : datafeed) {
- if (line.contains("|")) {
- String[] temp = line.split("\\|");
- //System.out.println(Arrays.toString(temp));
- if (temp.length == 2) {
- //System.out.println("x");
- values.add(temp);
- } else {
- transactions.add(temp);
- }
- }
- }
- for (String[] s : values) {
- int index = values.indexOf(s);
- String[] s1;
- if (index+1 < values.size()) {
- s1 = values.get(index+1);
- } else {
- break;
- }
- //System.out.println(Arrays.toString(s1));
- for (String[] t : transactions) {
- if (Integer.parseInt(t[0]) >= Integer.parseInt(s1[0])-3 && Integer.parseInt(t[0]) < Integer.parseInt(s1[0])) {
- if (Integer.parseInt(s[1]) > Integer.parseInt(s1[1]) && t[2].equals("SELL")) {
- int profit = (Integer.parseInt(s[1]) - Integer.parseInt(s1[1])) * Integer.parseInt(t[3]);
- if (profit >= 500000 && !flagged.containsKey(t[1])) {
- flagged.put(t[1],0);
- result.add(t[0] + "|" + t[1]);
- }
- }
- if (Integer.parseInt(s[1]) < Integer.parseInt(s1[1]) && t[2].equals("BUY")) {
- int profit = (Integer.parseInt(s1[1]) - Integer.parseInt(s[1])) * Integer.parseInt(t[3]);
- if (profit >= 500000 && !flagged.containsKey(t[1])) {
- flagged.put(t[1],0);
- result.add(t[0] + "|" + t[1]);
- }
- }
- }
- }
- }
- String[] result1 = new String[result.size()];
- for (int i = 0; i < result.size(); i++) {
- result1[i] = result.get(i);
- }
- return result1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement