非递归全排序(非字典算法)
非c++ next_permutation方式 数组不可有重复值(等待改进中) 思路: nums = [1,2,3, 4] 先建立空lists 数量为n! = 4! = 24 [ [], [], [], . . . ] sPtr = 0 [1, 2, 3, 4] 3!=6次插入nums[sPtr]后,指针sPtr后移(超出回归0) [ 1 , // sPtr = 0 1 , 1 , 1 , 1 , 1 , 2 , // sPtr = 1 … … … ] [1, 2, 3, 4] 插入前检测nums[sPtr] 是否已存在当前list中,是则指针sPtr后移(超出回归0) 2!=2次插入nums[sPtr]后,指针sPtr后移(超出回归0) [ [ 1 , 2 // sPtr = 1 1 , 2 1 , 3 // sPtr = 2 1 , 3 1 , 4 // sPtr = 3 1 , 4 … // sPtr = 0 … … ] [1, 2, 3, 4] 插入前检测nums[sPtr] 是否已存在当前list中,是则指针sPtr后移(超出回归0) 1!=1次插入nums[sPtr]后,指针sPtr后移(超出回归0) [ 1 , 2 , 3 1 , 2 , 4 1 , 3 , 2 1 , 3 , 4 1 , 4 , 2 1 , 4 , 3 … … … ] [1, 2, 3, 4]