博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】491. Increasing Subsequences
阅读量:7092 次
发布时间:2019-06-28

本文共 1121 字,大约阅读时间需要 3 分钟。

题目如下:

解题思路:这题把我折腾了很久,一直没找到很合适的方法,主要是因为有重复的数字导致结果会有重复。最后尝试用字典记录满足条件的序列,保证不重复,居然Accept了。

代码如下:

class Solution(object):    def findSubsequences(self, nums):        """        :type nums: List[int]        :rtype: List[List[int]]        """        res = []        queue = []        dic = {}        for i in range(len(nums)):            #pair = Pair([nums[i]], [i])            queue.append(([nums[i]], i))        # print queue        dic = {}        while len(queue) > 0:            nl,inx = queue.pop(0)            if len(nl) > 1:                s = ''                for i in nl:                    s += str(i)                    s += ','                s = s[:-1]                if s not in dic:                    dic[s] = 1                #res.append(s)            for i in range(inx+1,len(nums)):                if nl[-1] <= nums[i]:                    queue.append((nl + [nums[i]], i))        for i in dic.iterkeys():            rl = i.split(',')            rl2 = []            for i in rl:                rl2.append(int(i))            res.append(rl2)        return (res)

 

转载于:https://www.cnblogs.com/seyjs/p/9013884.html

你可能感兴趣的文章
Myeclipse常见快捷键及配置
查看>>
【PM面试题】如果让你创业,你会选择什么?
查看>>
python 中range numpy.arange 和 numpy.linspace 的区别
查看>>
深入非聚集索引:楼梯SQL Server二级索引
查看>>
Python之路【第一篇】:Python基础(4)
查看>>
反编译Android APK及防止APK程序被反编译
查看>>
利用Field获取图片
查看>>
android使用vitamio
查看>>
C++的强制类型转换
查看>>
android基础学习一:ImageView修改颜色灰度
查看>>
go语言学习--go中godep的使用小结
查看>>
两个矩阵相乘的源程序
查看>>
ActiveMQ 控制面板信息含义
查看>>
【Flatten Binary Tree to Linked List】cpp
查看>>
大一ACM心得总结
查看>>
Linux中Zookeeper部署和集群部署
查看>>
Linux之iptables 防火墙学习
查看>>
Unix必备知识精华版
查看>>
我爱淘二次冲刺阶段2
查看>>
javascript 构造对象传参数与原先创造对象
查看>>