leetcode做题总结,题目Next Permutation 31
2015-01-25 11:38
375 查看
这道题的思路是从后往前历遍,找到第一个非递增的数,然后和后面的数里大于它的最小数交换,然后对后面的数排序即可,如果全部是从前往后递减,则对整个数排序
class Solution11 { public void nextPermutation(int[] num) { int i = num.length-1; while(--i>=0){ if(num[i]<num[i+1]){ int min = num[i+1]; int ind = i+1; for(int j=i+2;j<num.length;j++){ if(num[j]<min&&num[j]>num[i]){ min=num[j]; ind=j; } } int tmp = num[ind]; num[ind]=num[i]; num[i]=tmp; if(i+1<num.length) Arrays.sort(num,i+1,num.length); return; } } Arrays.sort(num); return; } }
相关文章推荐
- leetcode做题总结,题目Swap Nodes in Pairs 2012/02/14
- leetcode做题总结,题目Convert Sorted List to Binary Search Tree 2012/10/02
- leetcode做题总结,题目Spiral Matrix I/II 2012/03/24
- leetcode做题总结,题目Longest Consecutive Sequence 2013/02/13
- leetcode做题总结,题目Longest Consecutive Sequence 2013/02/13
- leetcode做题总结,题目Plus One 2012/04/02
- leetcode做题总结,题目Sort List 2013/11/16
- leetcode做题总结,题目Copy List with Random Pointer 2013/10/03
- leetcode做题总结,题目Longest Valid Parentheses 2012/02/29
- leetcode做题总结,题目Container With Most Water------ 2012/01/08
- leetcode做题总结,题目Merge Two Sorted Lists 2012/03/30
- leetcode做题总结,题目Gray Code 2012/05/20
- leetcode做题总结,题目Generate Parentheses 2012/02/12
- leetcode做题总结,题目Search a 2D MatrixI/II 2012/04/06
- leetcode做题总结,题目Merge Sorted Array 2012/05/20
- leetcode做题总结,题目Binary Tree Inorder Traversal 2012/08/27
- leetcode做题总结,题目Pow(x, n)-------- 2012/03/19
- leetcode做题总结,题目Validate Binary Search Tree 2012/08/31
- leetcode做题总结,题目Search Insert Position 2012/03/03
- leetcode做题总结,题目Search for a Range 2012/03/02