算法记录 | Day28 回溯算法
93.复原IP地址
思路:
1.确定回溯函数参数:定义全局遍历存放res集合和单个path,还需要
-
s字符
-
startindex(int)为下一层for循环搜索的起始位置。
2.终止条件:当len(path)==4且遍历到字符串最末尾,将path加入res,len(path)>4 return
3.遍历过程:取temp= s[startindex:i+1],判断是否合法
- 不能超过255
- 0不能为前导
- 不能为00
- 不能为非0数字前导,e.g: 011
class Solution:def restoreIpAddresses(self, s: str) -> List[str]:res = []path = []def backtrack(s,startindex):if len(path)>4:return if len(path) == 4 and startindex == len(s):res.append(".".join(path))return for i in range(startindex, len(s)):temp = s[startindex:i+1]if int(temp)>255:continueif int(temp) == 0 and i!=startindex:continueif s[startindex]=='0'and int(temp)>0:continuepath.append(temp)backtrack(s,i+1)path.pop()backtrack(s,0)return res
78. 子集
思路:
1.确定回溯函数参数:定义全局遍历存放res集合和单个path,还需要
- nums数组
- startindex(int)为下一层for循环搜索的起始位置。
2.终止条件:当startindex >len(nums),完成遍历终止
3.遍历过程:求取子集问题,不需要任何剪枝!因为子集就是要遍历整棵树。
class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:res = []path = []def backtrack(nums,startindex):if startindex>len(nums):returnif len(path)<=len(nums):res.append(path[:])for i in range(startindex,len(nums)):path.append(nums[i])backtrack(nums,i+1)path.pop()backtrack(nums,0)return res
90. 子集 II
思路:
1.确定回溯函数参数:定义全局遍历存放res集合和单个path,还需要
- nums数组
- startindex(int)为下一层for循环搜索的起始位置。
2.终止条件:当startindex >len(nums),完成遍历终止
3.遍历过程:去重,先对nums排序,for循环层不能使用相同元素,排序数组,判断nums[i]==nums[i-1]
class Solution:def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:res = []path = []nums.sort()def backtrack(nums,startindex):if startindex>len(nums):returnif len(path)<=len(nums):res.append(path[:])for i in range(startindex,len(nums)):if i>startindex and nums[i] ==nums[i-1]:continuepath.append(nums[i])backtrack(nums,i+1)path.pop()backtrack(nums,0)return res
相关文章:
算法记录 | Day28 回溯算法
93.复原IP地址 思路: 1.确定回溯函数参数:定义全局遍历存放res集合和单个path,还需要 s字符 startindex(int)为下一层for循环搜索的起始位置。 2.终止条件:当len(path)4且遍历到字符串最末尾ÿ…...
气象历史数据和空气质量历史数据资源汇总免费
气象数据和空气质量数据资源汇总 1.全球气象数据资源 WorldClim 网址:Global climate and weather data — WorldClim 1 documentation WorldClim是一个全球高分辨率气候数据分享平台。截止2021年03月,其包括以下数据: •Climate数据&am…...
【区块链】走进web3的世界-对于前端来说,web2与web3的区别
web3离不开几个概念,智能合约、区块链、前端交互 1、智能合约可以直接与区块链中的区块进行交互; 2、前端通过web3.js/ethers.js等npm库可以和智能合约进行交互; 说的直白点,web3与web2对于前端来说,只是对接的对象发生…...
深拷贝和浅拷贝
目录 一.Java的Cloneable和clone()方法 1.Object类中的clone() 2.实现Cloneable接口的类 3.通过clone()生成对象的特点 二.深拷贝和浅拷贝 1.浅拷贝 2.深拷贝 3.实现深拷贝的两种方法 1.一种是递归的进行拷贝 2.Json字符串的方式进行深拷贝 一.Java的Cloneable和clone…...
【回眸】ChatGPT Plus(GPT4体验卡)
前言 没忍住诱惑,开了个GPT4.0的会员,给大家表演一波 开通成功 开始问问题 写一个CNN疲劳驾驶监测代码,要求{使用Python语言,使用包,能成功运行,需要调用电脑摄像头,要求GUI界面有一些参数…...
走进小程序【七】微信小程序【常见问题总结】
文章目录🌟前言🌟小程序登录🌟unionid 和 openid🌟关键Api🌟登录流程设计🌟利用现有登录体系🌟利用OpenId 创建用户体系🌟利用 Unionid 创建用户体系🌟授权获取用户信息流…...
光电隔离转换器 直流信号放大器 导轨安装DIN11 IPO OC系列
概述: 导轨安装DIN11 IPO OC系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要直流信号隔离测控的行业。此系列产品内部采用了线性光电隔离技术相…...
语聊房app的开发以及运营思路
语聊房app是一种基于实时语音交流的社交应用,用户可以通过该应用结识新朋友、交流经验、分享兴趣爱好等,因此备受年轻用户的青睐。以下是语聊房app的开发以及运营思路: 一、开发思路 功能设计 语聊房app的核心功能是实时语音聊天࿰…...
目标检测基础之IOU计算
目标检测基础之IOU计算概念理解——什么是IOUdemo后记概念理解——什么是IOU IOU 交并比(Intersection over Union),从字面上很容易理解:计算交集在并集的比重。从网上截张图看看 IOUA∩BA∪BIOU \frac{A \cap B}{A \cup B} IO…...
从spring boot泄露到接管云服务器平台
0x1前言 在打野的时候意外发现了一个站点存在spring boot信息泄露,之前就有看到一些文章可以直接rce啥的,今天刚好试试。通过敏感信息发现存在accesskey泄露,就想直接通过解密,获取敏感信息,接管云平台。 首先说下这个…...
大数据技术——spark集群搭建
目录 spark概述 spark集群搭建 1.Spark安装 2.环境变量配置 3.Spark集群配置 4.启动Spark集群 存在问题及解决方案 请参考以下文章 spark概述 Spark是一个开源的大数据处理框架,它可以在分布式计算集群上进行高效的数据处理和分析。Spark的特点是速度快、易…...
嵌入式学习笔记汇总
本文整理STM32、STM8和uCOS-III的所有文章链接。 STM32学习笔记目录 源码:mySTM32-learn STM32学习笔记(1)——LED和蜂鸣器 STM32学习笔记(2)——按键输入实验 STM32学习笔记(3)——时钟系统 …...
Python 全栈系列220 Tornado的服务搭建
说明 想法变的真快 本来是没打算用Tornado的,主要是想节约时间。但是现在看来不用还是不行:目前用gevent flask部署的时候,启动多核的worker似乎存在问题。 另外,有很多内部基础的数据服务,其实并不需要flask的各种组…...
ESXi安装CentOS
ESXi安装 参考:https://blog.csdn.net/tongxin_tongmeng/article/details/129466704 CentOS安装 镜像:http://mirrors.aliyun.com/centos/7/isos/x86_64-->CentOS-7-x86_64-DVD-2009.iso CentOS配置 FinalShell连接 ESXi简介 1.ESXi是由VMware公司…...
WebTest搭建
0.前言 此框架为真实项目实战,所以有些数据不便展示,只展示架构和思想 工具:pythonseleniumddtunittest 1.架构说明 2.代码封装 Commom层 base_page.py #__author__19044168 #date2021/8/26 import logging import datetime from sele…...
什么性格的人适合报考机械类专业?(高考志愿填报选专业)
机械类专业 是指涉及机械设计、制造、加工、维护等方面的专业,是工程类专业中的一类。机械类专业的学生主要学习机械工程的基础知识,包括机械设计、力学、材料力学、热力学、流体力学等,同时也会学习机械制造、机电一体化、机器人技术等实践性…...
进程概念详解
目录 进程是什么? 描述进程:进程控制块-PCB task_struct task_struct 是什么? task_struct内容分类 组织进程 查看进程 fork创建子进程 进程状态 僵尸进程 孤儿进程 进程优先级 其他概念 进程是什么? 一般书上…...
C语言基础——指针
文章目录一、指针1.指针的意义2.指针类型表示3.一些操作3.1打印1个变量地址3.2通过地址查看改地址的内容以及修改改地址的内容3.3操作某个空间 -- 4个字节,给他赋值为100,只知道该空间的地址0x8000 00004.指针变量的定义5.指针类型的大小6.指针变量的使用6.1 指针变…...
反序列化渗透与攻防(二)之Java反序列化漏洞
Java反序列化漏洞 反序列化漏洞 JAVA反序列化漏洞到底是如何产生的? 1、由于很多站点或者RMI仓库等接口处存在java的反序列化功能,于是攻击者可以通过构造特定的恶意对象序列化后的流,让目标反序列化,从而达到自己的恶意预期行为,包括命令执行,甚至 getshell 等等。 …...
优先级队列的模拟实现(仿函数)
目录: 1.priority_queue接口的实现(先建大堆) 1.push 加 向上调整的实现 2.pop 3.迭代器区间的构造 2.仿函数 3.仿函数优化我们的优先级队列 -------------------------------------------------------------------------------------------…...
别再格式化U盘了!Ubuntu 22.04 LTS下永久解决exFAT支持问题的完整配置指南
永久解决Ubuntu 22.04 LTS的exFAT兼容性问题:从原理到实践 当你在Ubuntu系统中插入一个exFAT格式的U盘或移动硬盘时,那个令人沮丧的错误提示可能已经出现过多次:"unknown filesystem type exfat"。这不是偶然现象,而是源…...
如何用Matplotlib打造faceai人脸识别可视化分析工具:10个实用技巧
如何用Matplotlib打造faceai人脸识别可视化分析工具:10个实用技巧 【免费下载链接】faceai 一款入门级的人脸、视频、文字检测以及识别的项目. 项目地址: https://gitcode.com/gh_mirrors/fa/faceai faceai是一款功能强大的入门级人脸识别与视觉分析开源工具…...
Trigger.dev与Supabase集成:构建全栈实时任务系统的终极指南
Trigger.dev与Supabase集成:构建全栈实时任务系统的终极指南 【免费下载链接】trigger.dev Trigger.dev – build and deploy fully‑managed AI agents and workflows 项目地址: https://gitcode.com/gh_mirrors/tr/trigger.dev Trigger.dev是一个强大的工作…...
终极营销自动化工作流设计:工程师如何构建高效营销流程
终极营销自动化工作流设计:工程师如何构建高效营销流程 【免费下载链接】Marketing-for-Engineers A curated collection of marketing articles & tools to grow your product. 项目地址: https://gitcode.com/gh_mirrors/ma/Marketing-for-Engineers …...
7th grade math (2026.05.15)Binary Linear Equation Group
Binary Linear Equation Group 七年纪(下)数学第十章《二元一次方程组》作业评价参考答案-zwf 错误题型分析...
Python崛起背后的四大引擎:从数据科学到Web开发的全栈语言进化
1. 从数据看趋势:Python为何成为开发者社区的“流量明星”最近在Stack Overflow上看到一组数据,挺有意思的。数据科学家David Robinson指出,Python已经成为该平台上访问量增长最快的主流编程语言。这个结论不是空穴来风,而是基于对…...
卡梅德生物技术快报|噬菌体肽库展示技术:细胞穿透肽筛选全流程技术实现
1. 问题背景(技术痛点) 细胞递送领域面临三大技术瓶颈: 穿透肽靶向性差,非特异性结合严重;传统筛选流程复杂,周期长、通量低;缺乏标准化验证体系,实验难以复现。噬菌体肽库展示技术…...
免费抠图软件一键抠图无水印有哪些?2026年最全工具推荐
最近在小红书和抖音上,我看到很多人都在问同一个问题:有没有好用的免费抠图软件,一键抠图还无水印的?说实话,现在抠图工具确实多,但真正好用的、免费的、还无水印的,选择反而没那么多。我自己用…...
仅限档案学研究者获取:NotebookLM定制提示词库V2.3(含17个NARA/中国第一历史档案馆认证模板)
更多请点击: https://intelliparadigm.com 第一章:NotebookLM档案学研究辅助 NotebookLM 是 Google 推出的基于 LLM 的研究型笔记工具,其核心能力在于对用户上传的私有文档(如 PDF、TXT、DOCX)进行语义理解与上下文关…...
react native expo打包
打包原文 核心主题 使用 Expo EAS(Expo Application Services)官方云打包服务,无需本地安装 Android Studio 或配置 Android SDK,直接在云端生成 .apk 文件。 详细步骤 1. 全局安装 EAS CLI(只需一次) n…...
