国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[LeetCode]78.Subsets

2019-11-11 00:29:23
字體:
來源:轉載
供稿:網友

原題:

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,If nums = [1,2,3], a solution is:

[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]這道題就是生成子集的問題,高中知識,子集個數為2^n個。所以我的思路是0-2^n的循環,然后將十進制數對應到二進制,根據二進制的值對應到某個元素是否在某個子集中。詳細代碼(代碼不好,速度有點慢,leetcode上有大神的代碼,估計C語言會快一點?):

class Solution(object):    def subsets(self, nums):        """        :type nums: List[int]        :rtype: List[List[int]]        """        length = len(nums)  # size of nums        result = []         if length == 0:            return result        for x in xrange(0, 2**length):            s = bin(x)            sub = []            n = x            # decimal to binary            for i in xrange(0, length):                if n == 0:                    break                else:                    if n % 2 == 1:                        sub.append(nums[i])                    n = n / 2            result.append(sub)        return result

其中十進制to二進制的代碼,求余求商,求出的結果是從低位到高位(對應學的十進制轉化二進制的方式,結果從下到上排列),上邊用的時候有些許變化:

n = 12PRint bin(n)while n != 0:    print n%2    n = n/2其實python中有十進制到二進制轉化的函數: bin()

bin(x)Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

轉化為了字符串,10 - 0b1010,注意0b也是字符串的內容,所以真正的二進制字符串是從索引2開始的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上饶市| 同心县| 宁晋县| 泾源县| 石渠县| 胶南市| 米林县| 宁德市| 庆云县| 清河县| 衢州市| 黔西县| 舟曲县| 安仁县| 陆丰市| 蒲城县| 长岛县| 桃园县| 汝阳县| 景东| 双流县| 白银市| 科技| 鲜城| 景德镇市| 宜黄县| 宜君县| 长岛县| 长泰县| 上高县| 武鸣县| 永城市| 葫芦岛市| 屏南县| 乐安县| 呼玛县| 临洮县| 上虞市| 德兴市| 山东| 刚察县|