java有自带类似于c++里面的next_permutation函数吗?
答案:2 悬赏:0 手机版
解决时间 2021-02-12 12:16
- 提问者网友:鐵馬踏冰河
- 2021-02-12 00:57
或者其他一些类似功能的函数
最佳答案
- 五星知识达人网友:鸽屿
- 2021-02-12 02:35
public void nextPermutation(int[] num)
{
if(num.length <= 1)
return ;
for(int i = num.length - 2; i >= 0; i--)
{
if(num[i] < num[i+1])
{
int j;
for(j = num.length - 1; j >= i; j--)
if(num[i] < num[j])
break;
// swap the two numbers.
num[i] = num[i] ^ num[j];
num[j] = num[i] ^ num[j];
num[i] = num[i] ^ num[j];
//sort the rest of arrays after the swap point.
Arrays.sort(num, i+1, num.length);
return ;
}
}
//reverse the arrays.
for(int i = 0; i < num.length / 2; i++)
{
int tmp = num[i];
num[i] = num[num.length - i - 1];
num[num.length - i - 1] = tmp;
}
return ;
}应该有,但是我没有找到,,找到了一个完整的函数。
{
if(num.length <= 1)
return ;
for(int i = num.length - 2; i >= 0; i--)
{
if(num[i] < num[i+1])
{
int j;
for(j = num.length - 1; j >= i; j--)
if(num[i] < num[j])
break;
// swap the two numbers.
num[i] = num[i] ^ num[j];
num[j] = num[i] ^ num[j];
num[i] = num[i] ^ num[j];
//sort the rest of arrays after the swap point.
Arrays.sort(num, i+1, num.length);
return ;
}
}
//reverse the arrays.
for(int i = 0; i < num.length / 2; i++)
{
int tmp = num[i];
num[i] = num[num.length - i - 1];
num[num.length - i - 1] = tmp;
}
return ;
}应该有,但是我没有找到,,找到了一个完整的函数。
全部回答
- 1楼网友:廢物販賣機
- 2021-02-12 03:30
暂时没发现。。自己做的时候只好用回溯全排列了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯