leetcode算法每天一题003:无重复字符的最长子串(max函数,滑动窗口+set)

【LeetCode力扣】003.无重复字符的最长子串(Python) 阅读详情

基础知识(比较大小函数)

  • #incloud< algroithm >;c = max(a,b);

  • java : Math.max

题目描述

  • 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

暴力解法

C++

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int len = s.length(); if(len<2)return len;
        int m=1,ch=s[0],p=0;
        for(int i=1;i<len;i++){
            for(int j=p;j<i;j++){
            if( s[j]==s[i]){
                m=max(m,i-p);
                p=j+1;
            }
            }
        }
        m=max(m,len-p);
        return m;
    }
};
  • 滑动窗口
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int l=0,r=0,res =0;
        set<char> ms;
        
        while(r<s.size()){ // for(int i=0;i<s.size();i++){ r无法遍历
            char x = s[r];
            if(ms.count(x)==0){//没有重复值
                r++;
                ms.insert(x);
                res = max(res,r-l); 
            }else{
                ms.erase(s[l]);
                l++;//我们发现有重复的值在窗口中了,就不断地减少窗口,即令i++
            }
            
        }
        return res;
    }
};

java

Java String 类和支持的方法描述,c++ string和数组区别
在这里插入图片描述

python

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        lens = len(s)
        if(lens<2):
            return lens
        m=1
        ch=s[0]
        p=0
        for i in range(1,lens,1):
            for j in range(p,i,1):
                if( s[j]==s[i]):
                    m=max(m,i-p)
                    p=j+1

        m = max(m,lens-p);
        return m; 

  • python中len是关键字

其它

C语言中 char s[] 和 char* s 的区别

class Solution {
public:


    int lengthOfLongestSubstring(string s) {
        

 int len=sizeof(s)/sizeof(char);//strlen(*s); !!!!!!!!???????
    if(len<2)return len;
    int m=1,ch=s[0],p=0;
    for(int i=1;i<len;i++){
        for(int j=p;j<i;j++){
          if( s[j]==s[i]){
              
            m=max(m,i-p);
               p=j+1;
          }
         }
    }
    m=max(m,len-p);
    return m;
}

};

在这里插入图片描述
在这里插入图片描述

quartus 13.1常见报错解决方法 在使用quartus中会遇到很多由于安装或设置不规范造成的错误。我就目前我遇到的一些错误以及我的解决方法分享给大家,这个文章将会持续更新,如果读者有遇到软件中错误无法解决的问题,也欢迎在评论区留言。 一、编译出现lience错误 在对设计的电路编译时,系统在程序运行3秒内即结束并报错,大概意思为现有的证书不支持编译。这个常见问题源自破解不成功,这里读者很有可能犯的错误是在使用破解器的时候没有区分x86(即32-bit)和x64软件破解器对应的文件夹。 如图所示有两种破解器,分别对应32位和64位的软件,大部 阅读详情

相关推荐

window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)

文章目录一、卸载node二、安装nvm三、配置路径和下载源四、使用nvm安装node五、nvm常用命令六、卸载nvm七、遇到的问题 nvm 全名 node.js version management,顾名思义是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。 一、卸载node 如果你已经安装了node,那么你需要先卸载node,如果你没有安装那直接跳过这一步到下一步。 打开控制面板 -> 打开程序和功能 -> 右上角搜索输入node -> 右键卸载 为了确保彻底

HuangsTing的博客 41万+

leetcode中有时候max函数无法使用的问题

在写leetcode的过程中,会发现有时可以正常使用max,而有时却会报错: Line 24: Char 19: error: called object type 'int' is not a function or function pointer return max(s1,s2); ~~~^ 1 error generated. 这种情况多半是你定义了一个变量为max。。。 eg: int max=0; max(1,2); 这个案例就会...

weixin_43098069的博客 2473

避坑指南:ROS2 Humble摄像头标定常见错误排查(从‘CALIBRATE’按钮不变绿到保存文件找不到)

本文详细解析了ROS2 Humble环境下摄像头标定的常见问题及解决方案,从CALIBRATE按钮不变绿到标定文件保存失败等疑难杂症。提供硬件准备、参数设置、实时诊断到结果验证的全流程指导,特别针对Ubuntu2204系统和usb_cam驱动的兼容性问题给出实用建议,帮助开发者高效完成内参标定。

weixin_29193359的博客 398

剑指 Offer 59 - II. 队列的最大值

剑指 Offer 59 - II. 队列的最大值 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value需要返回 -1 示例 1: 输入: ["MaxQueue","push_back","push_back","max_value","pop_front","max_value"] [[],[1],[2],[],[],[]].

哈哈哈的博客 348

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 213

Linux-VMware安装后没有虚拟网卡VMnet1和VMnet8(亲测有效,一步一步跟着绝对成功)

VMware-安装后没有虚拟网卡VMnet1和VMnet8 就这个破东西我昨天弄了一天,网上什么VMware卸载重装,用CCleaner清理注册表什么的操作我全用了,但是昨天就是弄不好,同样的操作我昨天试了无数遍一直觉得可能是 持续更新中… 文章参考学习地址:https://blog.youkuaiyun.com/qq_42445139/article/details/87872130 ...

杨的博客 8851

leetcode算法

最大子串有三种情况 1.在一个arr内部 2.横跨两个arr 和为一个arr的最大后缀+arr最大前缀求和 3.包括多个arr,和为k-2个的和再加上第2点的答案 最后比较三种情况的最大值 class Solution { public int kConcatenationMaxSum(int[] arr, int k) { int MOD = 1_000_000_007; int headMax = 0; int sum = 0;

qq_43571448的博客 238

[HQChart教程] 去掉“仅学习使用”文字提示的小技巧

最近用 HQChart 做图表时,发现左下角有“仅学习使用”的字样。这种水印虽然是默认的,但如果要展示给客户,可能会显得不够专业。还好,这个问题很好解决,只需要简单修改一下配置。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 598

leetcode系列(双语)003——GO无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: s = “abcabcbb”无重复字符的最长子串。

码鹿的记录 1139

AUTOSAR OS演示项目搭建与验证

请注意,以上代码只是一个简单的示例,用于说明AUTOSAR OS项目的搭建和验证过程。此外,AUTOSAR OS还提供了其他功能和API,如事件、消息队列和任务间通信等,可以根据实际需求进行使用。AUTOSAR OS是AUTOSAR架构中的一部分,它提供了一种可移植且可扩展的操作系统,用于管理嵌入式应用程序的任务和资源。通过以上步骤,我们成功搭建了一个基于AUTOSAR OS的演示项目,并验证了应用程序任务的执行顺序。3、打开app.c文件,并编写一个简单的应用程序,作为我们的示例任务。

weixin_50547796的博客 195

等保测评-达梦数据库

一般适用于等保测评

m0_54146694的博客 1297

【LeetCode】 003-无重复字符的最长子串 C语言求解

leetcode-003-无重复字符的最长子串

AustinCyy的博客 1793

学Simulink——基于 Simulink 的 滑模控制(SMC)

本文详细介绍了基于Simulink的Buck变换器滑模控制(SMC)设计与实现方法。首先阐述了传统PI控制在负载突变时的不足,以及滑模控制具有强鲁棒性和快速响应的优势。通过建立Buck变换器的连续状态方程,推导了含积分项的滑模面和控制律,并采用边界层法抑制抖振。文章分步骤讲解了Simulink模型搭建过程,包括主电路、控制器实现和负载扰动模拟模块。仿真结果表明,在负载1A↔5A阶跃时,SMC控制输出电压波动仅0.08V,恢复时间0.35ms,远优于传统PI控制。同时给出了工程实践中的参数选择建议和数字实现技

amy_mhd的博客 254

【Leetcode】003无重复字符的最长子串

题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串的长度。示例1输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例2输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例3输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。

xiaodoudouer的博客 665

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解

题目描述:给定一个字符串 s,请找出其中不含重复字符的最长子串的长度。子串需连续,且字符不可重复。原题链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/难度等级:Medium相关标签:字符串、哈希表、滑动窗口、双指针。

m0_52114506的博客 1047

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Leetcode 003. 无重复字符的最长子串 | 每日一题

给定一个字符串,请你找出其中不含有重复字符的 **最长子串** 的长度,因为无重复字符的最长子串是 "abc",所以其长度为 3。Leetcode解题

画漫画的程序员∙苏南 439

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【力扣高频题】003.无重复字符的最长子串

前面的算法文章,更新了许多专题系列。滑动窗口、动态规划、加强堆、二叉树递归套路等。还没读过的小伙伴可以关注同名号,在主页中点击对应链接查看哦~接下来的一段时间,将持续「力扣高频题」系列文章,想刷力扣高频题的小伙伴也可以关注一波哦 ~!!关注回复「ACM紫书」获取 ACM 算法书籍 ~回复「算法导论」获取 算法导论第3版 ~在看 + 转发让你的小伙伴们一起来学算法吧!!

weixin_46879314的博客 976

【LeetCode】003——无重复字符的最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子...

Daycym的博客 397

LeetCode003——无重复字符的最长子串

我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/ 题目描述: 知识点:滑动窗口 思路一:暴力解法 用双重循环来求得所可能取得的所有的子串...

清风阁 925

Leetcode003——无重复字符的最长子串

本文通过派对邀请的生动比喻,介绍了解决"无重复字符最长子串"问题的滑动窗口算法。算法使用左右指针作为派对保安,哈希集合记录已邀请客人:右指针逐个邀请新客人,若重复则左指针移除最早加入的客人,直到无重复。整个过程保持记录最大子串长度。该方法时间复杂度O(n),空间复杂度O(min(n,m)),适用于各种字符串场景。通过Java代码示例和"abcabcbb"的详细步骤解析,展示了算法的高效实现原理。

weixin_44385781的博客 838

leetcode003无重复字符的最长子串-我自己的理解

leetcode无重复字符的最长子串-我自己的理解 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” ...

peony的博客 144

【LeetCode003】无重复字符的最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 (详见LeetCode)https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 题目分析 以“abcabcbb”为例,梳理手动得出答案的过程。 1.从第一个字母开始往后比较,如不重复则看下一个字母。 a→b...

fistomina的博客 226

LeetCode003 无重复字符的最长子串

题目描述: 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 样例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 样例2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 分析: 记得大概是本科做过这个题吧。。。滑动窗口还是有点印象的。。。但是第一遍写的时候,不知道写的什么乱七八糟,看了题解,才记起来一些。官方给出的题解中用到了unordered_set..

sulywang的博客 140

LeetCode题库整理【Java】—— 3 无重复字符的最长子串

LeetCode题库整理【Java】 ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “dvdf” 输出: 1 解释: 因为无重复字符的最长子串是 “vdf”,所以其长度为 3。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案

qq_37975919的博客 194

数组-1-LeetCode 03题 -> 无重复字符的最长子串

LeetCode 03题 -> 无重复字符的最长子串 1. 题目描述 给定一个字符串,找出其中不含有重复字符的最长子串的长度。 示例: s = "abcabcbb" 返回 3 s = "bbbbb" 返回 1 s = "pwwkew" 返回 3 无重复字符的最长子串是 "wke" //注意: 是 子串 的长度,不是子序列。 2. 解题思路 滑动窗口法: ①定义一个滑动窗口,窗口内无重复元素,所以需要定义一个HashSet集合; ②滑动窗口的左右边界left、right,

baidu_38126306的博客 316

003-无重复字符得最长子串-力扣

无重复字符得最长字串 文章目录无重复字符得最长字串一:题目二:思路以及代码(一):暴力匹配1、解析 一:题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例一: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例二: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例三: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符

Juwenile的博客 305
上一篇: leetcode算法每天一题002:两数相加(链表)
下一篇: leetcode算法每天一题004: 寻找两个正序数组的中位数
FakeOccupational
博客等级 码龄6年 2万+粉丝 1727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值