由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教下leetcode Permutations II
相关主题
请问大牛们leetcode上的Permutations II请教leetcode Permutations II 解法和code
A Question from leetcode, 求标准解法,本人解的太笨袅求问permutation这个题
相关话题的讨论汇总
话题: vector话题: num话题: used话题: int话题: ret
进入JobHunting版参与讨论
1 (共1页)
k*******2
发帖数: 84
1
II是含duplicate的。下面这个解法过OJ没问题,但是我不是很理解它是怎么处理{1, 1
}这种情况的。
if (used[i] || (i != 0 && num[i] == num[i - 1] && used[i - 1])) continue;
我怎么觉得它会返回空{}。
估计是哪里想错了,求指教。多谢!
class Solution {
public:
vector > permuteUnique(vector &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector used(num.size(), false);
vector path;
vector > ret;
sort(num.begin(), num.end());
sub(num, used, path, ret);
return ret;
}
void sub(vector &num, vector &used, vector &path, vector
> &ret) {
if (num.size() == path.size()) {
ret.push_back(path);
return;
}
for (int i = 0; i < num.size(); ++i) {
if (used[i] || (i != 0 && num[i] == num[i - 1] && used[i - 1]))
continue;
used[i] = true;
path.push_back(num[i]);
sub(num, used, path, ret);
used[i] = false;
path.pop_back();
}
}
};
i****y
发帖数: 84
2
当前数字的前一个如果相等,而且前一个数字已经使用了,那当前数字就不要用。这样
就只有一种情况,比如有五个1,12345,数字代表这五个1的位置,那他们根据条件只
能有54321的排列。
1 (共1页)
进入JobHunting版参与讨论
相关主题
请问大牛们leetcode上的Permutations II请教leetcode Permutations II 解法和code
A Question from leetcode, 求标准解法,本人解的太笨袅求问permutation这个题
相关话题的讨论汇总
话题: vector话题: num话题: used话题: int话题: ret