这是LeetCode的第46号题目Permutations,也就是排列的意思,给定一个数字集,比如[1,2,3],让我们返回这些数字全排列。
全排列的概念我们都很熟悉,高中数学时没少受排列组合问题的折磨。
给定[1,2,3],相比你能轻松的计算出其全排列是:
123,132,213,132,312,321
你可能觉得这也太简单了吧,简直一眼就能看出答案,但是,这里给定的数字集就三个,如果给你一个[1,2,3,4,5,6,7,8,9]这样的数字集答案还明显吗,你能一下说出[1,2,3,4,5,6,7,8,9]这九个数字的全排列是什么吗?
聪明的你肯定意识到了这不那么容易的事情,显然,9个数字的全排列组合个数是9!,也就是有362880个排列组合,我们人类的大脑天生不适合处理这种机械式的问题,因为这非常繁琐,但是,这一切对于计算机来说不是问题。
那么你该怎么告诉计算机求出一个数字集的全排列呢?
我的思路
很显然,你需要某种策略,这种策略能明确的告诉计算机——也就是利用算法,每一步该如何处理直到计算出所有的全排列,那么这种策略