【全排列】

567 篇文章

已下架不支持订阅

141 篇文章

已下架不支持订阅

题目来源

46. 全排列 - 力扣(LeetCode)

根据数组nums = [1,2,3],生成全排列可以模拟出一个树形结构,如下图所示

该树结构具有如下特点:

第一层节点,我们可以选择数组任意一个元素,如1或2或3,而一旦选定,则后面层级的节点将不能再选该数组元素,比如第一层节点选择了1,则第二、三层就不能再选1,同理,第二层节点如果选择了2,则第三层节点就不能再选择2,只能选择仅剩的3。

我们可以采用递归的方式生成上面的树:

第一层节点:从0索引开始遍历nums数组,遍历的每一个元素都可以作为第一层节点

第二层节点:从0索引开始遍历nums数组,此时我们需要进行甄别,如果遍历的元素已经在第一层使用过了,则不能作为第二层节点

实现:我们可以预先定义一个used数组,长度和nums数组相同,used[i]用于标记nums[i]是否已使用。获取第一层节点时,如果取nums[i],那么就将used[i] = true,标记为使用过,这

已下架不支持订阅

评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值