python_day_5:20180720
生活随笔
收集整理的這篇文章主要介紹了
python_day_5:20180720
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
78.?子集 給定一組不含重復元素的整數數組?nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重復的子集。 示例: 輸入: nums = [1,2,3] 輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] https://leetcode-cn.com/problems/subsets/description/ 思路:獲得一個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?所有元素,且元素按順時針順序螺旋排列的正方形矩陣。 https://leetcode-cn.com/problems/spiral-matrix-ii/description/ 思路:這么惡心的題目,我已經不想多說了,做到想吐!可能是我算法不夠好,感覺這一段就是代碼屆的苦力代表。 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
轉載于:https://www.cnblogs.com/codeinpy/p/9344582.html
總結
以上是生活随笔為你收集整理的python_day_5:20180720的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【贪心】雷达问题
- 下一篇: 课时5:闲聊之Python的数据类型