Next Permutation
来源:互联网 发布:淘宝秋冬裙子 编辑:程序博客网 时间:2024/06/07 10:46
import java.util.Arrays;public class Solution { public void nextPermutation(int[] nums) { if (nums == null || nums.length <= 1) return; int i = nums.length - 1; while (i > 0) { if (nums[i] > nums[i - 1]) break; i--; } if (i != 0) { swap(nums, i - 1); } reverse(nums, i); } public void swap(int[] nums, int i) { for (int k = nums.length - 1; k > i; k--) { if (nums[k] > nums[i]) { int temp = nums[k]; nums[k] = nums[i]; nums[i] = temp; break; } } } public void reverse(int[] nums, int j) { int k = nums.length - 1; int temp; while (j < k) { temp = nums[j]; nums[j] = nums[k]; nums[k] = temp; j++; k--; } } public static void main(String[] args) { int[] nums = {5, 3, 4, 2, 1}; new Solution().nextPermutation(nums); System.out.println(Arrays.toString(nums)); }}
[参考]
https://discuss.leetcode.com/topic/14124/sharing-my-clean-and-easy-understand-java-code-with-explanation
0 0
- 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
- 实习期和试用期
- 富文本控件ueditor
- 最长公共子序列(LCS)和最优二叉搜索树
- 从今晚开始写编程博客
- cocos2d-x 3.x封装socket方法
- Next Permutation
- 安卓6.0权限管理
- 3、在Myeclipse中,导入formatter模板
- 常用删归档,查看归档
- python server简单入门(socket)
- c# wpf 利用截屏键实现截屏功能
- K-最近邻算法(KNN)
- 简单的全选,不选,反选的js实现方式
- 产品助理day18