【LeetCode with Python】 Permutations II

来源:互联网 发布:java interface与抽象 编辑:程序博客网 时间:2024/05/22 01:37
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/permutations-ii/
题目类型:
难度评价:★
本文地址:http://blog.csdn.net/nerv3x3/article/details/37993703

Given a collection of numbers that might contain duplicates, return all possible unique permutations.

For example,
[1,1,2] have the following unique permutations:
[1,1,2], [1,2,1], and [2,1,1].


class Solution:    def doPermuteUnique(self, num_list):        if 1 == len(num_list):            return [ num_list ]        res_list = [ ]        for i in range(0, len(num_list)):            if i > 0 and num_list[0] == num_list[i]:                continue            tmp = num_list[0]            num_list[0] = num_list[i]            num_list[i] = tmp            sub_res_list = self.doPermuteUnique(num_list[1:])            list_head = [ num_list[0] ]            new_list = [ list_head + list for list in sub_res_list]            res_list.extend(new_list)        return res_list    # @param num, a list of integer    # @return a list of lists of integers    def permuteUnique(self, num):        num.sort()        return self.doPermuteUnique(num)

0 0