首页 > 编程语言 >28天【代码随想录算法训练营34期】第七章 回溯算法 (● 93.复原IP地址 ● 78.子集 ● 90.子集II )

28天【代码随想录算法训练营34期】第七章 回溯算法 (● 93.复原IP地址 ● 78.子集 ● 90.子集II )

时间:2024-04-16 11:44:21浏览次数:27  
标签:index return nums self 随想录 算法 子集 result path

93.复原IP地址

class Solution:
    def restoreIpAddresses(self, s: str) -> List[str]:
        result = []
        self.backtracking(s, [], 0, result)
        return result
    
    def backtracking(self, s, path, index, result):
        if index >= len(s) and len(path) == 4:
            result.append('.'.join(path))
            return
        if len(path) > 4:
            return
        for i in range(index, min(index+3, len(s))):
            if self.is_valid(s, index, i):
                sub = s[index:i+1]
                path.append(sub)
                self.backtracking(s, path, i+1, result)
                path.pop()

    def is_valid(self, s, start, end):
        if start > end:
            return False
        if s[start] == '0' and start != end:
            return False
        num = int(s[start:end+1])
        return 0 <= num and num <= 255

78.子集

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        result = [[]]
        self.backtracking(nums, [], 0, result)
        return result
    def backtracking(self, nums, path, index, result):
        if index >= len(nums):
            return
        for i in range(index, len(nums)):
            path.append(nums[i])
            result.append(path[:])
            self.backtracking(nums, path, i+1, result)
            path.pop()
        

90.子集II

class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        nums.sort()
        result = [[]]
        self.backtracking(nums, [], 0, result)
        return result
    def backtracking(self, nums, path, index, result):
        if index >= len(nums):
            return
        for i in range(index, len(nums)):
            if index != i and nums[i] == nums[i-1]:
                continue
            path.append(nums[i])
            result.append(path[:])
            self.backtracking(nums, path, i+1, result)
            path.pop()

标签:index,return,nums,self,随想录,算法,子集,result,path
From: https://www.cnblogs.com/miramira/p/18137765

相关文章

  • 常见的排序算法——希尔排序
    本文记述了希尔排序的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。◆思想给定元素之间的间隔h,将所有间隔为h的元素作为独立的待排序范围,可以得到h个这样的子范围。针对每个子范围执行插入排序,使得任意间隔为h的元素是有序的。然后缩小间距......
  • 深度学习算法中的稀疏编码(Sparse Coding)
    【摘要】引言稀疏编码(SparseCoding)是深度学习算法中的一种重要技术,它在神经网络模型中发挥着重要的作用。本文将介绍稀疏编码的基本概念、原理以及在深度学习中的应用。稀疏编码的概念稀疏编码是一种通过寻找数据的稀疏表示来描述数据的方法。在深度学习中,稀疏编码可以将输入数......
  • 基于直方图相似性的图像分类算法FPGA实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览MATLAB测试结果:    FPGA测试结果:   上述仿真图中,红色XX表示图像读取完毕。因此输出XX。当图像输出完成之后,最下面的相似性指标 same1输出为11226,same2输出为67584.即图1和图2相似性较强,图1和图3相似性较弱。 2.算法运行软件版本vi......
  • 27天【代码随想录算法训练营34期】第七章 回溯算法part03(● 39. 组合总和 ● 40.组合
    39.组合总和怎么才能避免重复?比现在数小的数就别append到path里面了,之前肯定都试过了classSolution:defcombinationSum(self,candidates:List[int],target:int)->List[List[int]]:result=[]candidates.sort()self.backtracking(cand......
  • 算法相关读书笔记
    由于算法导论中涉及大量数学公式,在腾讯文档才能友好的展示,因此下面分享的为腾讯文档的链接个人能力有限,可能有的理解是错误的,请谅解,仅供分享和参考【腾讯文档】算法导论1~3部分【腾讯文档】算法导论第4~5部分【腾讯文档】算法导论第6部分22~24章【腾讯文档】算法导论第6部分2......
  • 深入理解DES算法:原理、实现与应用
    title:深入理解DES算法:原理、实现与应用date:2024/4/1421:30:21updated:2024/4/1421:30:21tags:DES加密对称加密分组密码密钥管理S盒P盒安全性分析替代算法DES算法简介历史DES(DataEncryptionStandard)算法是由IBM研发,并于1977年被美国国家标准局(NBS,现NIST......
  • 八大排序算法
    八大排序冒泡排序/*稳定排序时间复杂度:O(n^2)空间复杂度:O(1)*/publicstaticvoidbubbleSort(int[]nums){for(inti=0;i<nums.length-1;i++){booleanflag=false;for(intj=0;j<nums.length......
  • 2XC3 最短路径算法
    计算机科学:最终项目此项目将包括最终报告和您的代码。您的最终报告将包括以下内容。你会正在为此最终项目提交.py(NOT*.ipynb)文件。•标题页•目录•图表表•一份执行摘要,强调你的实验/分析的一些主要收获•向TA解释如何导航代码的附录。对于每个实验,在你的实验室报告中包括一个与......
  • 代码随想录算法训练营第8天 | 字符串 344.反转字符串 541. 反转字符串II 卡码网:54.
    leetcode344.反转字符串题目344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。解题思路实现代码......
  • 代码随想录算法训练营第9天 | 字符串(KMP算法) 28. 找出字符串中第一个匹配项的下标
    leetcode28.找出字符串中第一个匹配项的下标题目28.找出字符串中第一个匹配项的下标给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。解题思路实现代......