leetcode 刷题 90 91

举报
毛利 发表于 2021/07/15 07:42:11 2021/07/15
【摘要】 class Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: res = [[]] for x, k in collections.Counter(nums).items(): res.extend([subset + [x] * n for subset in r...

在这里插入图片描述
在这里插入图片描述

class Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: res = [[]] for x, k in collections.Counter(nums).items(): res.extend([subset + [x] * n for subset in res for n in range(1, k+1)]) return res

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

class Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: res=[[]] for val in nums: n=len(res) for i in range(n): #res[i]+[val] would return a new list without affecting the original res[i] #sort the list to avoid duplicates add=sorted(res[i]+[val]) if add not in res: res.append(add) return res

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
在这里插入图片描述

class Solution(object): def numDecodings(self, s): if not s: return 0 dp = [0] * (1 + len(s)) dp[0] = 1 for i in range(1, len(s) + 1): if s[i - 1] != "0": dp[i] = dp[i - 1] if i > 1 and 10 <= int(s[i-2:i]) <= 26: dp[i] += dp[i - 2] return dp[-1]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

class Solution(object): def numDecodings(self, s): if not s: return 0 len_s = len(s) dp = [1] + [0] * len_s for i in range(1, len_s + 1): if s[i - 1] != '0': dp[i] += dp[i - 1] if i >= 2 and 10 <= int(s[i - 2: i]) <= 26: dp[i] += dp[i - 2] return dp[len_s]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。

原文链接:maoli.blog.csdn.net/article/details/90575495

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。