void fun(int* nums,int left,int right)
{
int temp;
while(left<right)
{
temp=nums[left];
nums[left]=nums[right];
nums[right]=temp;
left++;
right--;
}
}
void nextPermutation(int* nums, int numsSize){
int i,j,temp;
for(i=numsSize-1;i>0;i--) if(nums[i-1]<nums[i]) break;
if(i==0)
{
fun(nums,0,numsSize-1);
return;
}
for(j=numsSize-1;nums[i-1]>=nums[j];j--) ;
temp=nums[i-1];
nums[i-1]=nums[j];
nums[j]=temp;
fun(nums,i,numsSize-1);
}
力扣:31. 下一个排列
最新推荐文章于 2024-10-16 10:13:45 发布