LeetCode2.1.12(Next Permutation)
来源:互联网 发布:高阶矩阵计算 编辑:程序博客网 时间:2024/04/28 18:17
2.1.12 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 le-hand column and its corresponding outputs are in the
right-hand column.
描述
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 le-hand column and its corresponding outputs are in the
right-hand column.
1,2,3 → 1,3,2
3,2,1 → 1,2,31,1,5 → 1,5,1
这道题的思路相当精彩,在于从右到左找到第一个递增的数对
public static void solution2_1_12(int[] array){int i=array.length-1;for(;i>0;i--){if(array[i-1]<array[i])break;}if(i==0)return;else{int j=i-1;int t=array.length-1;for(;t>j;t--){if(array[t]>array[j])break;}int temp=array[j];array[j]=array[t];array[t]=temp;for(int k=j+1;k<array.length-1;k++){int index=array.length+1-k;if(k<index){temp=array[k];array[k]=array[index];array[index]=temp;}}}for(int k=0;k<array.length;k++)System.out.print(array[k]+" ");}
0 0
- LeetCode2.1.12(Next Permutation)
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- UIButton及UITextfield
- Python学习笔记:装饰器
- Problem 2089 数字游戏
- 有关label的学习笔记
- Android中静态变量(static)的使用
- LeetCode2.1.12(Next Permutation)
- Java中static关键字
- iOS 浅谈:深.浅拷贝与copy.strong
- R语言13行代码实现神经网络
- 如何检索Android设备的唯一ID
- 基于三层的sqlite基础示例:登录
- PHP 面向对象之__toString
- The Last Practice(HDU1405)
- 配置多个数据源