Skip to content

Instantly share code, notes, and snippets.

(def combinations
"creates combinations of items for example [1 2 3]
will generate ((1 2 3) (1 2) (1 3) (1) (2 3) (2) (3) [])"
(memoize (fn[items]
(if (empty? items) [[]]
(let [els (combinations (rest items))]
(concat (map #(cons (first items) %)els) els))))))
package com.masary.util;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
package graph;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Stack;
public class Reachability {
private static int[] pre;
private static int[] post;
package graph;
import java.util.PriorityQueue;
public class GraphSearch {
// Priority queue for getting the shortest connected edge
PriorityQueue<Node> Q = new PriorityQueue<Node>((n1, n2) -> {
if (n1.distance < n2.distance)
return -1;
package graph;
import java.util.ArrayList;
import java.util.Scanner;
public class ConnectedComponents {
private static boolean[] v;
private static ArrayList<Integer>[] g;
private static int counter = 0;