public int numIslands(char[][] grid) { int counter = 0; int n = grid.length; if (n == 0) return 0; int m = grid[0].length; if (m == 0) return 0; int[][] direct = new int[][] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (grid[i][j] == '1') { counter++; ArrayDeque<Integer> q = new ArrayDeque<Integer>(); grid[i][j] = 0; q.add(i); q.add(j); while (!q.isEmpty()) { int r = q.poll(); int c = q.poll(); for (int[] d : direct) { int rr = d[0] + r; int cc = d[1] + c; if (rr >= 0 && rr < n && cc >= 0 && cc < m && grid[rr][cc] == '1') { grid[rr][cc] = 0; q.add(rr); q.add(cc); } } } } } } return counter; }
protected static Object addUpgradeToDequeIfPopulated(Object holder, EventBean theEvent) { if (holder == null) { return theEvent; } else if (holder instanceof Deque) { Deque<EventBean> deque = (Deque<EventBean>) holder; deque.add(theEvent); return deque; } else { ArrayDeque<EventBean> deque = new ArrayDeque<EventBean>(4); deque.add((EventBean) holder); deque.add(theEvent); return deque; } }
synchronized void add(Chunk c) throws InterruptedException { int len = c.getData().length; if (BLOCK_WHEN_FULL) while (len + dataSizeBytes > maxDataSize) wait(); else chunks.remove(); dataSizeBytes += len; chunks.add(c); }
private Collection<SchemaTypeInfo> gatherInheritors(XmlTagImpl xml) { XmlAttribute name = getNameAttr(xml); if (name == null || StringUtil.isEmptyOrSpaces(name.getValue())) return null; String localName = name.getValue(); final boolean hasPrefix = localName.contains(":"); localName = hasPrefix ? localName.substring(localName.indexOf(':') + 1) : localName; final String nsPrefix = hasPrefix ? name.getValue().substring(0, name.getValue().indexOf(':')) : null; final XmlFile file = XmlUtil.getContainingFile(xml); if (file == null) return null; final Project project = file.getProject(); if (project == null) return null; final Set<SchemaTypeInfo> result = new HashSet<SchemaTypeInfo>(); final ArrayDeque<SchemaTypeInfo> queue = new ArrayDeque<SchemaTypeInfo>(); String nsUri; if (!hasPrefix) { nsUri = getDefaultNs(file); } else { nsUri = XmlUtil.findNamespaceByPrefix(nsPrefix, file.getRootTag()); } if (nsUri == null) return null; queue.add(new SchemaTypeInfo(localName, true, nsUri)); final PairConvertor<String, String, List<Set<SchemaTypeInfo>>> worker = SchemaTypeInheritanceIndex.getWorker(project, file.getContainingFile().getVirtualFile()); while (!queue.isEmpty()) { final SchemaTypeInfo info = queue.removeFirst(); final List<Set<SchemaTypeInfo>> childrenOfType = worker.convert(info.getNamespaceUri(), info.getTagName()); for (Set<SchemaTypeInfo> infos : childrenOfType) { for (SchemaTypeInfo typeInfo : infos) { if (typeInfo.isIsTypeName()) { queue.add(typeInfo); } result.add(typeInfo); } } } return result; }
private void updateState(String newMap) { for (int i = 0, j = 0; i < newMap.length(); i++, j = i / size) { raw[i % size][j] = newMap.charAt(i); ElementType type = ElementType.parseChar(newMap.charAt(i)); Element el; if (type == ElementType.ME) { me = new Tank(ElementType.ME, i % size, j); el = me; } else if (type == ElementType.TANK) { el = new Tank(ElementType.TANK, i % size, j); actors.add((Actor) el); } else if (type == ElementType.SHELL) { el = new Shell(i % size, j); actors.add((Actor) el); } else { el = new Element(type); } map[i % size][j] = el; } }
static void solve() { int r = in.nextInt(); int c = in.nextInt(); int sy = in.nextInt() - 1; int sx = in.nextInt() - 1; int gy = in.nextInt() - 1; int gx = in.nextInt() - 1; char[][] t = new char[r][c]; for (int i = 0; i < r; i++) { t[i] = in.next().toCharArray(); } ArrayDeque<int[]> que = new ArrayDeque<>(); BitSet visited = new BitSet(); que.add(new int[] {sy, sx, 0}); visited.set(sy * c + sx); int[] dx = {0, 1, 0, -1}; int[] dy = {1, 0, -1, 0}; int[][] dist = new int[r][c]; while (!que.isEmpty()) { int[] p = que.pollFirst(); int cy = p[0]; int cx = p[1]; int d = p[2]; dist[cy][cx] = d; for (int i = 0; i < 4; i++) { int ny = cy + dy[i]; int nx = cx + dx[i]; if (ny < 0 || nx < 0 || r <= ny || c <= nx) continue; if (visited.get(ny * c + nx) || t[ny][nx] == '#') continue; que.add(new int[] {ny, nx, d + 1}); visited.set(ny * c + nx); } } out.println(dist[gy][gx]); }
public Collection<EventBean> getSnapshot( EPStatementHandle createWindowStmtHandle, Viewable parent) { createWindowStmtHandle.getStatementLock().acquireReadLock(); try { Iterator<EventBean> it = parent.iterator(); if (!it.hasNext()) { return Collections.EMPTY_LIST; } ArrayDeque<EventBean> list = new ArrayDeque<EventBean>(); while (it.hasNext()) { RevisionEventBeanDeclared fullRevision = (RevisionEventBeanDeclared) it.next(); MultiKeyUntyped key = fullRevision.getKey(); RevisionStateDeclared state = statePerKey.get(key); list.add(state.getLastEvent()); } return list; } finally { createWindowStmtHandle.getStatementLock().releaseReadLock(); } }
public RunTimeStack() { framePointers = new ArrayDeque<Integer>(); runStack = new ArrayList<Integer>(); framePointers.add(0); }