banner
NEWS LETTER

回溯

Scroll down

回溯

仅需判断是否存在

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
T target; //需要回溯的对象
boolean result = false;
public void backTracking(T target){
this.target = target; //初始化需要回溯的对象
backTrackingHelper(开始遍历的位置);
return result;
}
public void backTrackingHelper(当前遍历到的位置){
if(满足条件)
result = true;
else{
操作当前位置;
backTrackingHelper(下一个需要遍历的位置);
恢复当前位置;
}
}

需找出所有符合条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
T target; //需要回溯的对象
T<> result; //所有符合条件
T temp;
public void backTracking(T target){
this.target = target; //初始化需要回溯的对象
backTrackingHelper(开始遍历的位置);
return result;
}
public void backTrackingHelper(当前遍历到的位置){
if(temp == 满足条件)
result.add(temp);
else{
操作temp;
backTrackingHelper(下一个需要遍历的位置);
恢复temp;
}
}
Other Articles