单项选择题
给定n个可能含有重复的元素存放于x[1:n],输出去掉重复的全排列, 这里swap是实现两个变量值的交换,下面是算法描述
注意:红色代码部分【1】【2】【3】位置有代码缺失。
void backtrack(int t)
{
if(t>n) {
for(int i=1;i<=n;i++)
printf("%d ",x[i]);
printf("");
}
else{
for(int i=t;i<=n;i++){
int ok=1;
for(int j=【 1 】; j
if(x[j]==x[i]) {【 3 】;break;}
if(ok)
{
swap(x[t],x[i]);
backtrack(t+1);
swap(x[t],x[i]);
}
}
}
}
上面的算法中, 红色代码部分【1】【2】【3】位置代码缺失, 请从如下选项中找到合适的代码。
A、【1】 i ,【2】 t ,【3】 ok=1
B、【1】i , 【2】t ,【3】 ok=0
C、【1】t ,【2】 i,【3】 ok=1
D、【1】t,【2】 i ,【3】 ok=0