zoukankan      html  css  js  c++  java
  • python_day_5:20180720

    78. 子集
     
    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
    说明:解集不能包含重复的子集。
    示例:
    输入: nums = [1,2,3]
    输出:
    [
    [3],
    [1],
    [2],
    [1,2,3],
    [1,3],
    [2,3],
    [1,2],
    []
    ]
    思路:获得一个nums作为列表,n=len(nums)相当于这个列表中元素的个数。n个元素的列表,它的组合一共有2**n种。这时联想到二进制表达。遍历2**n,把每个值转化为二进制,就可以代表原来的nums中,相应位置的元素要不要在结果列表中体现。
    class Solution:
        def subsets(self, nums):
            """
            :type nums: List[int]
            :rtype: List[List[int]]
            """
            binnums=2**len(nums)
            result=[]
            for i in range(binnums):
                mask=str(bin(i)).replace('0b','')
                mask='0'*(len(nums)-len(mask))+mask
                thisone=[]
                for j in range(len(mask)):
                    if mask[j]=='1':
                        thisone.append(nums[j])
                result.append(thisone)
            return result
    59. 螺旋矩阵 II
    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
    思路:这么恶心的题目,我已经不想多说了,做到想吐!可能是我算法不够好,感觉这一段就是代码届的苦力代表。
    class Solution(object):
        def generateMatrix(self, n):
            result=[[0 for i in range(n)] for j in range(n)]
            numlist=[]
            for i in range(1,n**2+1):
                numlist.append(i)  
            k=0
            while len(numlist)>0:
                for item in range(k,n-k):
                    result[k][item]=numlist[item-k]
                numlist=numlist[n-2*k:]
                for item in range(k+1,n-k):
                    result[item][-k-1]=numlist[item-1-k]
                numlist=numlist[n-1-2*k:]
                for item in range(k+1,n-k):
                    result[-k-1][-1-item]=numlist[item-1-k]
                numlist=numlist[n-1-2*k:]
                for item in range(k+1,n-1-k):
                    result[-item-1][k]=numlist[item-1-k]
                numlist=numlist[n-2-2*k:]
                k+=1
                
            return result
  • 相关阅读:
    web应用模式
    Win10升级本地Django版本,以及DRF框架的安装使用
    DRF作业(1)
    中间件作业
    复习day03作业
    python基础复习
    利用自定义中间件来实现DRF框架中的request对象的data属性
    复习Day02(python中魔法方法,cookie/sesison/token,pymysql)
    排序之快排
    排序之归并
  • 原文地址:https://www.cnblogs.com/codeinpy/p/9344582.html
Copyright © 2011-2022 走看看