首页 > 其他分享 >Study Plan For Algorithms - Part20

Study Plan For Algorithms - Part20

时间:2024-09-03 20:39:14浏览次数:3  
标签:curr target backtrack Study list Part20 Algorithms candidates sum

1. 组合总和
题目链接:https://leetcode.cn/problems/combination-sum/
给定一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。

class Solution:
    def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
        def backtrack(curr_list, curr_sum, start):
            if curr_sum == target:
                res.append(curr_list[:])
                return
            if curr_sum > target:
                return
            for i in range(start, len(candidates)):
                curr_list.append(candidates[i])
                backtrack(curr_list, curr_sum + candidates[i], i)
                curr_list.pop()

        res = []
        backtrack([], 0, 0)
        return res

2. 组合总和 II
题目链接:https://leetcode.cn/problems/combination-sum-ii/
给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

class Solution:
    def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:
        def backtrack(curr_list, curr_sum, start):
            if curr_sum == target:
                res.append(curr_list[:])
                return
            if curr_sum > target:
                return
            for i in range(start, len(candidates)):
                if i > start and candidates[i] == candidates[i - 1]:
                    continue
                curr_list.append(candidates[i])
                backtrack(curr_list, curr_sum + candidates[i], i + 1)
                curr_list.pop()

        candidates.sort()
        res = []
        backtrack([], 0, 0)
        return res

标签:curr,target,backtrack,Study,list,Part20,Algorithms,candidates,sum
From: https://www.cnblogs.com/stephenxiong001/p/18395403

相关文章

  • Study Plan For Algorithms - Part20
    1.树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。方法一:classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightdefisSubStructure(A,B):ifnotAornot......
  • Study Plan For Algorithms - Part18
    1.搜索插入位置题目链接:https://leetcode.cn/problems/search-insert-position/给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。classSolution:defsearchInsert(self,nums:List[int],target:......
  • COMP20003 Algorithms and Data Structures Spellcheck Lookup
    Assignment2:SpellcheckLookupGeneralYoumustreadfullyandcarefullytheassignmentspecificationandinstructions.Course:COMP20003AlgorithmsandDataStructures@Semester2,2024DeadlineSubmission:Friday6thSeptember2024@11:59pm(endo......
  • Study Plan For Algorithms - Part16
    1.下一个排列题目链接:https://leetcode.cn/problems/next-permutation/整数数组的一个排列就是将其所有成员以序列或线性顺序排列。整数数组的下一个排列是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组......
  • PHPStudy 面板在使用过程中可能会遇到各种错误
    面板在使用过程中可能会遇到各种错误。这里列出一些常见的问题及其解决方法:启动问题启动失败描述:面板启动时失败,无法正常工作。解决方法:检查面板的日志文件,查找启动失败的具体原因。确认服务器资源是否足够。重新安装或更新到最新版本的PHPStudy。网站问题网......
  • Study Plan For Python - Part4
    格式化输出1.reprlib模块提供了一个定制化版本的repr()函数,用于缩略显示大型或深层嵌套的容器对象importreprlibreprlib.repr(set('fantabulouslywonderificentamazingness'))#可迭代对象,输出"{'a','b','c','d','e','f',.......
  • Study Plan For Algorithms - Part11
    1.合并两个有序链表题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。classSolution:defmergeTwoLists(self,list1:Optional[ListNode],list2:Option......
  • Study Plan For Algorithms - Part8
    1.三数之和题目链接:https://leetcode.cn/problems/3sum/给定一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。返回所有和为0且不重复的三元组。classSolution:deft......
  • A Comparative Study of AI-Generated (GPT-4) and Human-crafted MCQs in Programmin
    文章目录题目摘要引言相关工作数据集MCQ生成提示实验设计结果讨论对教学实践的启示有效性的局限性和威胁结论和未来工作题目编程教育中人工智能生成的(GPT-4)和人类编写的MCQ的比较研究论文地址:https://dl.acm.org/doi/10.1145/3636243.3636256摘要    ......
  • Study Plan For Algorithms - Part7
    1.罗马数字转整数题目链接:https://leetcode.cn/problems/roman-to-integer/罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符数值I1V5X10L50C100D500M1000通常情况下,罗马数字中小的数字在大的数字的右边。但也存在六种特例:I可以放在......