领扣LintCode问题答案-15. 全排列

领扣LintCode问题答案-15. 全排列

目录

  • 15. 全排列
  • 鸣谢

15. 全排列

给定一个数字列表,返回其所有可能的排列。
你可以假设没有重复数字。

样例 1:

输入:[1]
输出:
[
[1]
]

样例 2:

输入:[1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]

public class Solution {/** @param nums: A list of integers.* @return: A list of permutations.*/public List<List<Integer>> permute(int[] nums) {// write your code hereList<List<Integer>> ret = new ArrayList<>();permute(nums, 0, nums.length - 1, ret);return ret;}private void permute(int[] nums, int startIndex, int endIndex, List<List<Integer>> ret) {// write your code hereif (startIndex >= endIndex) {List<Integer> oneRet = new ArrayList<Integer>();for (int num : nums) {oneRet.add(num);}ret.add(oneRet);} else {for (int i = startIndex; i <= endIndex; i++) {if (i > startIndex) {int t = nums[i];nums[i] = nums[startIndex];nums[startIndex] = t;}permute(nums, startIndex + 1, endIndex, ret);if (i > startIndex) {int t = nums[i];nums[i] = nums[startIndex];nums[startIndex] = t;}}}}
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部