gensay
BAN USERpublic class AllBrackets {
public static void main(String... a) throws Exception {
printAll(Integer.parseInt(a[0]));
}
public static void printAll(int n) {
printAll(new char[2 * n], 0, 0);
}
private static void printAll(char[] c, int index, int level) {
if (index >= c.length) {
System.out.println(new String(c));
return;
}
if (level > 0) {
c[index] = ')';
printAll(c, index+1, level-1);
}
if (c.length - index > level) {
c[index] = '(';
printAll(c, index+1, level+1);
}
}
}
java solution by sorting
import java.util.Arrays;
public class FindMinDiff {
public static void findWithSort(int[] a, int[] b) {
Arrays.sort(a);
Arrays.sort(b);
int ia = 0, ib = 0;
int diff = Integer.MAX_VALUE;
int ea = 0; // element from A
int eb = 0; // element from B
do {
int curDiff = Math.abs(a[ia] - b[ib]);
if (diff > curDiff) {
ea = a[ia];
eb = b[ib];
diff = curDiff;
}
if (a[ia] < b[ib]) {
ia++;
} else {
ib++;
}
} while (ia < a.length && ib < b.length);
System.out.println("diff(" + ea + ", " + eb + ") = " + diff);
}
}
I can't find any issue from original code if the linked list does not contains any loop.
- gensay December 05, 2013