-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbacktrack1.java
More file actions
57 lines (51 loc) · 1.15 KB
/
backtrack1.java
File metadata and controls
57 lines (51 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.ub.test;
public class backtrack1 {
private boolean isSolution(int k,int n) {
// if(k == n)
// return true;
// else
// return false;
return k==n;
}
/**
*
* @param a : store the vector //candidates
* @param k : store the traversal
* @param input : store the input
*/
private void backtrack(int a[],int k,int[] input) {
int c[] = new int[20];
if(isSolution(k,input.length-1)) {
processSolution(a,k,input); //pruning / termination state
} else {
k++;
int noOfCandidate = generateCandidate(c);
for(int i=0;i<noOfCandidate;i++) {
a[k] = c[i];
backtrack(a, k,input);
}
// backtrack(a, k, n);
}
}
private int generateCandidate(int c[]) {
c[0] = 1;
c[1] = 0;
return 2;
}
private void processSolution(int a[],int k,int []ip) {
System.out.print("{");
for (int i=0;i<=k;i++) {
if(a[i] == 1) {
System.out.print(ip[i] + ",");
}
}
System.out.print("}" + "\n");
}
public static void main(String args[]) {
int[] ip = {1,4,5};
int [] a = new int[10];
backtrack1 bt = new backtrack1();
int k = -1;
bt.backtrack(a,k,ip);
}
}