We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
If you use dynamic programming you needn't go crazy trying to find the mathematical relation.
private static void stonesDP(AtomicInteger x, AtomicInteger i, int pathSize, Set results,Set visited) {
if (i.get() == pathSize) {
results.add(x.get());
return;
}
AtomicInteger xi = new AtomicInteger(x.get());
AtomicInteger ii = new AtomicInteger(i.get());
x.addAndGet(Math.min(a, b));
i.incrementAndGet();
xi.addAndGet(Math.max(a, b));
ii.incrementAndGet();
if (!visited.contains(x.get()+"-"+i.get())) {
visited.add(x.get()+"-"+i.get());
stonesDP(x, i, pathSize, results, visited);
}
if (!visited.contains(xi.get()+"-"+ii.get())) {
visited.add(xi.get()+"-"+ii.get());
stonesDP(xi, ii, pathSize, results, visited);
}
}
Manasa and Stones
You are viewing a single comment's thread. Return to all comments →
If you use dynamic programming you needn't go crazy trying to find the mathematical relation.
private static void stonesDP(AtomicInteger x, AtomicInteger i, int pathSize, Set results,Set visited) {