博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Next Permutation
阅读量:4075 次
发布时间:2019-05-25

本文共 1365 字,大约阅读时间需要 4 分钟。

Next Permutation

Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.

If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order).

The replacement must be in-place, do not allocate extra memory.

Here are some examples. Inputs are in the left-hand column and its corresponding outputs are in the right-hand column.
1,2,3 → 1,3,2
3,2,1 → 1,2,3
1,1,5 → 1,5,1

Java代码:

public class Test_79 {	public static void nextPermutation(int[] num) {		int len = num.length;		if (0 == len || 1 == len)			return;		boolean flag = false;		for (int i = 2; i <= len; i++) {			if (num[len - i] < num[len - i + 1]) {				flag = true;//判断不满足逆序				int tmp = num[len - i];				for (int j = 1; j < i; j++) {	//将第一个比tmp大的数交换出来					if (num[len - j] > tmp) {						num[len - i] = num[len - j];						num[len - j] = tmp;						break;					}				}				// sort				for (int j = 1; j <= (i - 1) / 2; j++) {//对tmp之后的元素进行排序					tmp = num[len - j];					num[len - j] = num[len - (i - j)];					num[len - (i - j)] = tmp;				}				return;			} else {				continue;			}		}		if (false == flag) {			Arrays.sort(num);			return;		}	}	public static void main(String[] arqs) {		int[] test = { 1,3,2 };		nextPermutation(test);		for (int i = 0; i < test.length; i++) {			System.out.println(test[i]);		}	}}
 

转载地址:http://hpuni.baihongyu.com/

你可能感兴趣的文章
Linux +Win LAMPP Tools XAMPP 1.7.3 / 5.6.3
查看>>
my read_university
查看>>
network manager
查看>>
OS + Linux Disk disk lvm / disk partition / disk mount / disk io
查看>>
RedHat + OS CPU、MEM、DISK
查看>>
net TCP/IP / TIME_WAIT / tcpip / iperf / cain
查看>>
webServer kzserver/1.0.0
查看>>
OS + Unix IBM Aix basic / topas / nmon / filemon / vmstat / iostat / sysstat/sar
查看>>
my ReadMap subway / metro / map / ditie / gaotie / traffic / jiaotong
查看>>
OS + Linux DNS Server Bind
查看>>
linux下安装django
查看>>
Android 解决TextView设置文本和富文本SpannableString自动换行留空白问题
查看>>
最完整的Java IO流学习总结
查看>>
Android开发中Button按钮绑定监听器的方式完全解析
查看>>
Android自定义View实现商品评价星星评分控件
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
postgresql查看表的和索引的情况,判断是否膨胀
查看>>
postgresql中根据oid和filenode去找表的物理文件的位置
查看>>
postgresql减少wal日志生成量的方法
查看>>
swift中单例的创建及销毁
查看>>