Redian新闻
>
permutationII ,如果不用hashset,用迭代的方法,如何防止重复
avatar
permutationII ,如果不用hashset,用迭代的方法,如何防止重复# JobHunting - 待字闺中
R*9
1
说要使用12%得coupon,就要收回我得blackberry torch,赶紧忍气吞声结帐赶紧走人
avatar
y*i
2
public static List> getPerms(int[] num) {
if (num == null || num.length == 0) {
return null;
}
List> res = new ArrayList>();
List first = new ArrayList();
res.add(first);
for (int i = 0; i < num.length; i++) {
List> newRes = new ArrayList>();
for (int j = 0; j < res.size(); j++) {
List current = res.get(j);
for (int k = 0; k <= current.size(); k++) {
List item = new ArrayList(current);
item.add(k, num[i]);
newRes.add(item);
}
}
res = newRes;
}
return res;
}
这个是permutation 1, 在这基础上如何改?
avatar
w*r
3
12%能用吗?求证一下
avatar
h*e
4
class Solution {
public:
vector > permuteUnique(vector &num) {
vector > vec;
sort(num.begin(), num.end());
do
{ vec.push_back(num);
}while(next_permutation(num.begin(), num.end()));
return vec;
}
};
昨天写的 I/II 都好用.
avatar
c*y
5
换家店试试?

【在 R****9 的大作中提到】
: 说要使用12%得coupon,就要收回我得blackberry torch,赶紧忍气吞声结帐赶紧走人
: 。

avatar
y*i
6

大哥你这偷懒得厉害啊,直接用库函数了,面试肯定不让啊。

【在 h*******e 的大作中提到】
: class Solution {
: public:
: vector > permuteUnique(vector &num) {
: vector > vec;
: sort(num.begin(), num.end());
: do
: { vec.push_back(num);
: }while(next_permutation(num.begin(), num.end()));
: return vec;
: }

avatar
h*e
7
next permutation leetcode 里面也有阿,二分搜一下,swap一下,然后 reverse一下。

【在 y***i 的大作中提到】
:
: 大哥你这偷懒得厉害啊,直接用库函数了,面试肯定不让啊。

avatar
y*i
8

下。
能不能通过先排序的方法,具体怎么做想不出

【在 h*******e 的大作中提到】
: next permutation leetcode 里面也有阿,二分搜一下,swap一下,然后 reverse一下。
avatar
s*k
9
std::next_permutation()
avatar
D*3
10

注意节操 哈哈哈哈哈

【在 s***k 的大作中提到】
: std::next_permutation()
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。