vJechsmayr / PythonAlgorithms

All Algorithms implemented in Python 3 a project for hacktoberfest2020 - NO Issues or PRs for hacktoberfest 2021
MIT License
132 stars 367 forks source link

0046 - Permutations #805

Closed omrawal closed 3 years ago

omrawal commented 3 years ago

Description of the Problem

Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.

Example 1:

Input: nums = [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] Example 2:

Input: nums = [0,1] Output: [[0,1],[1,0]] Example 3:

Input: nums = [1] Output: [[1]]

Constraints:

1 <= nums.length <= 6 -10 <= nums[i] <= 10 All the integers of nums are unique.

Code

class Solution:

    def rec(self,sinput,index,ans):
        n=len(sinput)
        if(index==n-1):
            ans.append(sinput.copy())
            return 

        for i in range(index,n):
            sinput[i],sinput[index]=sinput[index],sinput[i]
            self.rec(sinput,index+1,ans)
            sinput[i],sinput[index]=sinput[index],sinput[i]

    def permute(self, nums: List[int]) -> List[List[int]]:
        ans=[]
        index=0
        self.rec(nums,index,ans)
        return ans

Link To The LeetCode Problem

LeetCode