boolean go(double ntime, Box box) { debug("go"); g(ntime); for (int i = 0; i < bs.size() - 1; i++) if (bs.get(i) == box) { Box nb = box.h1 <= box.h2 ? bs.get(i - 1) : bs.get(i + 1); if (eq(nb.h, box.h)) { Box nbox = box.combine(nb); bs.remove(box); bs.add(i, nbox); bs.remove(nb); } else { nb.f += box.f; box.f = 0; } return true; } return false; }
Point[] getConvex(Point[] points) { ArrayList<Point> hull = new ArrayList<Point>(); for (Point p : points) { while (hull.size() >= 2 && !isConvex(hull.get(hull.size() - 2), hull.get(hull.size() - 1), p)) { hull.remove(hull.size() - 1); } hull.add(p); } while (hull.size() >= 2 && hull.get(hull.size() - 1).x == hull.get(hull.size() - 2).x) { hull.remove(hull.size() - 1); } return hull.toArray(new Point[0]); }
public static ArrayList<String> serializeTree(TreeNode tree) { ArrayList<String> res = new ArrayList<>(); LinkedList<TreeNode> queue = new LinkedList<>(); queue.addLast(tree); while (!queue.isEmpty()) { TreeNode node = queue.removeFirst(); if (node == null) { res.add(NULL); } else { res.add(String.valueOf(node.val)); queue.add(node.left); queue.add(node.right); } } while (res.size() > 1 && res.get(res.size() - 1).equals(NULL)) { res.remove(res.size() - 1); } return res; }
/** * Delete existing Row * * @param windowNo relative window * @param AD_Tab_ID tab * @param relRowNo relative row number in results * @return error message or null */ public ChangeVO deleteRow(int windowNo, int AD_Tab_ID, int queryResultID, int relRowNo) { UITab tab = getTab(AD_Tab_ID); if (tab == null) { log.config("Not found AD_Tab_ID=" + AD_Tab_ID); return new ChangeVO(true, "@NotFound@ @AD_Tab_ID@=" + AD_Tab_ID); } ArrayList<String[]> data = m_results.get(queryResultID); if (data == null) return new ChangeVO(true, "Data Not Found"); String[] rowData = data.get(relRowNo); // Copy Data into Context Map<String, String> context = new HashMap<String, String>(); String[] columns = tab.getColumnNames(); for (int i = 0; i < columns.length; i++) { String column = columns[i]; context.put(column, rowData[i]); } CContext ctx = new CContext(m_context.entrySet()); ctx.addWindow(windowNo, context); ChangeVO retValue = tab.deleteRow(ctx, windowNo); if (retValue.hasError()) return retValue; // Update Results data.remove(relRowNo); return retValue; } // deleteRow