zoukankan      html  css  js  c++  java
  • 39. Combination Sum

    题目来源

    LeetCode 39. Combination Sum

    自我感觉难度/真实难度: 难

    写题时间时长: 2hours

    题意:

    从一个list中间找到可以相加等于target的数字,可以重复。返回所有可能的情况。
     

    分析:

    自己一开始是没有什么思路,┏┛┗┓...(((m-__-)m,感觉直接暴力循环肯定是不优雅的
     

    自己的代码:

    
    

    代码效率/结果:

    优秀代码:

    
    class Solution:
        def combinationSum(self, can: List[int], tar: int) -> List[List[int]]:
            res=[]
            l=len(can)
            
            def dfs(targ,index,path):
                if targ<0:
                    return
                if targ==0:
                    res.append(path)
                    return
                for i in range(index,l):
                    if targ<can[i]:
                        continue
                    dfs(targ-can[i],i,path+[can[i]])
            dfs(tar,0,[])
            return res
           
    

    代码效率/结果:
    Runtime: 56 ms, faster than 99.16% of Python3 online submissions for Combination Sum.
    Memory Usage: 13.2 MB, less than 43.13% of Python3 online submissions for Combination Sum.

    自己优化后的代码:

    
    

    反思改进策略:

    1. 对各类算法及常见的题型没有总结。总结起来
    2. 好的算法还可以进一步优化,提升时间效率。思考哪些情况是无效的,去除一些没有必要的操作
  • 相关阅读:
    array_keys
    strval
    is_numeric
    php static延迟静态绑定
    page39 类的访问权限控制
    page34类的继承
    被遗忘在角落的类型检查函数
    2.2.5重写静态变量
    2.2.3使用parent作用域
    16个最棒的WordPress博客写作发布工具【博主桌面工具】
  • 原文地址:https://www.cnblogs.com/captain-dl/p/10951220.html
Copyright © 2011-2022 走看看