一、Leetcode 93. 复原IP地址
注意Leetcode 可以使用stoi, stoi(str);
string to int 也可也用按位乘10的办法来做。
二、Leetcode 78. 子集
和之前的区别是除了收集叶子节点,还得收集非叶子节点。
递归逻辑是
void backtracking(参数) {
记录当前的path
if (终止条件) {
存放结果;
return;
}
for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
压入path;
backtracking(路径,选择列表); // 递归
回溯,pop path
}
}
三、Leetcode 90. 子集II
集成了子集问题和去重问题。
for (int i = startIndex; i < nums.size(); i++){
if (i > startIndex && nums[i] == nums[i - 1]) continue;
else {
path.push_back(nums[i]);
backtracking(nums, i + 1);
path.pop_back();
}
}