大厂面试-好未来一面算法之求最长无重复子串长度

目录指引

  • 大厂面试-好未来一面算法之求最长无重复子串长度
    • 本文学习目标或巩固的知识点
  • 3. 无重复字符的最长子串🟡🟢
    • 通过题目可知
    • 题解
    • 结果验证

大厂面试-好未来一面算法之求最长无重复子串长度

本文学习目标或巩固的知识点

  • 学习如何处理经典题目《最长无重复子串长度》
  • 巩固滑动窗口

提前说明:算法题目来自力扣、牛客等等途径

🟢表示简单
🟡表示中等
🔴表示困难
🤮表示恶心

博主真实经历,该题近期好未来教育集团一面有考察!!!!!!一般大厂面试的做题时间也就10-30分钟左右,如果不经常练习或者没掌握技巧很容易栽倒到一些容易的题上面,等回头看只有空悲切!!!!掌握技巧和算法敏感度很重要!!!!!

3. 无重复字符的最长子串🟡🟢

求一个字符串中的最长无重复子串长度。

提示:

  • 0 <= s.length <= 5 * 104
  • s 由英文字母、数字、符号和空格组成

例1:

输入: abcdedafg
输出:5

解释:abcde这是一个最长的无重复子串,同理edafg也是。所以最长的无重复子串是5。

通过题目可知

  1. 一个随机字符串
  2. 没有时间和空间复杂度要求
  3. 可以套用滑动窗口公式

题解

该题目属于窗口不固定的一类滑动窗口题目。

模板:

for|while(遍历){
   //或 增大窗口
   while(判断){
     //缩小窗口
   }
   //或 增大窗口
}

本题我利用了LinkedList,方便处理最长无重复子串长度问题。pollFirst头部出队,offerLast尾部入队。如果队列中包含重复的元素就不断地从头部出队直到不包含为止。
(也可以使用HashSet+双指针解决)

public int longestStr(String str){
    if(str == null || str.length()==0){
        return 0;
    }
    char[] chars = str.toCharArray();
    int max = 0;
    LinkedList<Character> rst = new LinkedList<>();
    for(int i=0; i<chars.length; i++){
        char ch = chars[i];
        while (rst.contains(ch)){
            //队列头部 出队
            rst.pollFirst();
        }
        //队列尾部添加元素
        rst.offerLast(ch);
        max = Math.max(max,rst.size());
    }
    return max;
}

结果验证

在这里插入图片描述


http://www.niftyadmin.cn/n/5419404.html

相关文章

Android 图片裁剪并批量上传视频图片到阿里云OSS

添加依赖&#xff1a; implementation com.github.LuckSiege.PictureSelector:picture_library:v2.6.0implementation com.soundcloud.android:android-crop:1.0.1aar //裁剪包&#xff0c;高版本调用手机裁剪功能不行&#xff0c;调用这个包//glideimplementation com.github.…

【AI视野·今日Robot 机器人论文速览 第八十三期】Wed, 6 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 6 Mar 2024 Totally 30 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;SpaceHopper,外星探索多功能三足机器人 (from Robotic Systems Lab, ETH Zurich) Daily Robotics Papers A Safety-Criti…

零基础学习JS--基础篇--带键的集合

Map Map对象&#xff1a; Map 对象就是一个简单的键/值对映射集合&#xff0c;可以按照数据插入时的顺序遍历所有的元素。 下面的代码演示了使用 Map 进行的一些基本操作。 const sayings new Map(); sayings.set("dog", "woof"); sayings.set("…

MySQL在报表统计中的综合实践:SQL语句与函数应用

引言 在数据分析与报表制作领域&#xff0c;MySQL因其出色的性能和丰富的统计功能&#xff0c;成为了众多企业构建报表系统的首选数据库引擎。本篇文章将深度剖析如何利用MySQL的SQL语句和统计函数完成日常报表统计任务&#xff0c;包括但不限于按天、周、月、季度和年的数据汇…

软考网络工程师 第五章 第一节 移动通信与5G

移动通信 移动通信制式 5G应用场景与关键技术 5G关键技术包括&#xff1a;超密集异构无线网络、大规模输入输出&#xff08;MIMO&#xff09;、毫米波通信、软件定义网络和网络功能虚拟化 例1:5G网络采用&#xff08;A&#xff09;可将5G网络分割成多张虚拟网络&#xff0c;每…

Linux 性能调优之配置CPU调度策略和可调参数

写在前面 考试整理&#xff0c;博文内容涉及&#xff1a;CPU 调度简单认知不同进程优先级和不同调度策略认知内核调度可调参数介绍理解不足小伙伴帮忙指正 人生不是书上的故事&#xff0c;喜怒哀乐&#xff0c;悲欢离合&#xff0c;都在书页间&#xff0c;可书页翻篇何其易&am…

腾讯云4核8G服务器用来做什么?使用场景说明

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

腾讯云服务器99元一年,新老用户均可买,续费也是99元一年

良心腾讯云推出99元一年服务器&#xff0c;新用户和老用户均可以购买&#xff0c;续费不涨价&#xff0c;续费也是99元&#xff0c;配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff1a;优惠价格99元一年&#xff0c;续费99元&#xff0c;官方活动页面 txybk.com/g…