LeetCode探索之旅2(88)-3Longest Substring Without Repeats

博客围绕LeetCode第3题展开,旨在找出字符串中最长的无重复子串长度。介绍了两种方法,一是用标志数组判断子串是否有重复字母,二是采用滑动窗口动态更改窗口大小。还提及代码优化可一次循环完成及滑动窗口使用,并附上C++和Python代码。

今天继续刷LeetCode,第3题,找出字符串中最长的无重复子串长度。

分析:
方法一:既然需要找到无重复的,那么就可以设置一个标志数组,用来判断子字符串中是否包含当前要包含的字母,如果存在重复就更新最大长度,重新开始遍历,直到遍历完整个。
方法二:采用滑动窗口的方式,动态更改窗口大小。

问题:
1、代码优化方面,可以只用一次循环完成;
2、滑动窗口的使用。

附上C++代码1:

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int n=s.length();
        int max_length=0;
        for(int i=0;i<n;i++)
        {
            vector<int> t(256,-1);
            int length=0;
            for(int j=i;j<n;j++)
            {
                if(t[s[j]]>-1)
                {
                    
                    break;
                }
                else
                {
                    length++;
                    t[s[j]]++;
                }
            }
            max_length=max(length,max_length);
        }
        return max_length;
    }
};

附上C++代码2:

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        vector<int> dict(256, -1);
        int maxLen = 0, start = -1;
        for (int i = 0; i != s.length(); i++) {
            if (dict[s[i]] > start)
                start = dict[s[i]];
            dict[s[i]] = i;
            maxLen = max(maxLen, i - start);
        }
        return maxLen;
    }
};

附上Python代码:

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        tem=0
        d={}
        start=0
        for i in range(len(s)):
            if s[i] in d and start<=d[s[i]]:
                start=d[s[i]]+1
            tem=max(tem,i-start+1)
            d[s[i]]=i
        return tem
纸张与塑料实例分割数据集 一、基础信息 • 数据集名称:纸张与塑料实例分割数据集 • 图片数量: 训练集:5304张图片 验证集:440张图片 总计:5744张图片 • 训练集:5304张图片 • 验证集:440张图片 • 总计:5744张图片 • 分类类别: 纸张(paper):常见的可回收材料,广泛用于包装和日常用品。 塑料(plastic):合成聚合物材料,在垃圾处理和回收中需准确识别。 • 纸张(paper):常见的可回收材料,广泛用于包装和日常用品。 • 塑料(plastic):合成聚合物材料,在垃圾处理和回收中需准确识别。 • 标注格式:YOLO格式,包含实例分割多边形标注,适用于实例分割任务。 • 数据格式:图片数据来源于相关领域,标注精确,支持模型训练。 二、适用场景 • 垃圾自动分类系统开发:数据集支持实例分割任务,帮助构建能够精确分割纸张和塑料物体的AI模型,用于智能垃圾桶、回收设施或环境监测系统。 • 环境监测与保护应用:集成至环保监控平台,实时检测和分类垃圾,促进垃圾分类、回收和可持续发展。 • 学术研究与创新:支持计算机视觉与环保领域的交叉研究,为垃圾识别和材料分类提供数据基础,推动AI在环境科学中的应用。 • 工业自动化与物流:在制造业或物流环节中,用于自动化检测和分类材料,提升生产效率和资源管理。 三、数据集优势 • 精准标注与实用性:每张图片均经过仔细标注,实例分割边界精确,确保模型能够学习纸张和塑料的细粒度特征。 • 数据多样性:涵盖多种场景和条件,提升模型在不同环境下的泛化能力和鲁棒性。 • 任务适配性强:标注兼容主流深度学习框架(如YOLO等),可直接用于实例分割模型训练,并支持扩展至其他视觉任务。 • 应用价值突出:专注于可回收材料检测,为垃圾管理、环保政策和自动化系统提供可靠数据支撑,助力绿色科技发展。
代码转载自:https://pan.quark.cn/s/fc36d9cf1917 《建筑工程施工强制性条文检查记录》是针对建筑工程施工过程中的核心环节进行合规性审核的关键性文件,其目的在于保障施工质量与施工安全。 这份文件收录了建筑工程施工过程中必须遵守的国家强制性准则、指令和技术规范,对于建筑施工作业单位、监理机构以及相关行政管理部门而言,均构成不可替代的参考资料。 建筑工程施工强制性条文主要涵盖以下几个方面的内容:1. **设计与施工准则**:工程项目的设计需符合国家的建筑设计准则,涵盖结构稳固性、防火性能、抗震性能、环保性能等方面的标准。 在施工作业阶段,必须严格依照设计图纸和施工计划进行,任何变更均需获得设计单位的一致许可。 2. **建筑材料品质**:所有投入使用的建筑材料,例如混凝土、钢筋、砌块等,都必须具备出厂合格证明,并接受第三方检测机构的品质验证。 严禁采用不合格或已过有效期的材料。 3. **施工安全措施**:在施工作业期间必须恪守安全生产准则,设置安全防护装置,例如脚手架、安全网、警示标识等。 施工人员需接受安全知识培训,并使用个人防护用品。 4. **环境管理**:施工作业应控制噪音、粉尘、废弃物等对环境可能造成的负面影响,推行绿色施工理念,采取降尘、防噪、废弃物分类处理等手段。 5. **工程质量监管**:每个施工作业阶段完成后,需实施自检、互检和专项检查,确保每一道工序的合格性。 对于基础工程、主体结构、防水工程等关键部位,应执行严格的验收流程。 6. **工程验收流程**:工程完工后,必须依照国家规范进行验收,涵盖单位工程验收、分部工程验收和整体工程验收,确保工程符合设计和使用需求。 7. **文档管理**:施工作业期间产生的技术文件、检测报告、会议记...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值