LeetCode03-无重复字符的最长子串

【HAL库-STM】智能温控按键小风扇【胎教级教学】 硬件设备:DHT11,0.96寸oled屏,二/三/四线风扇(不挑),面包板 、f10的精英板等等。当人在的风扇面前时可以自行控制风扇,不在面前时又想开风扇就让他温控自行开启,(在这里有一个想法就是加上蓝牙和wifi控制的功能能够远程遥控,这个如果做的再全一点就要自主研发是一个多功能app,这里没有做。针对这个dht11,我一开始是卡在了这个check函数里面,一直是我给完dht11低电平和高电平后,dht11不回复我低电平和高电平,这个不是我的问题,当时代码是没毛病的,这个点一直卡着我。吐血五天实现小成品 阅读详情
题目描述

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 :

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers

代码
  • 方法一(自己思路实现)

    思路和下面大神一的差不多:首先将字符按照先后次序依次存入map,当发现待存入字符在map中已有的时候,更新最长字符串的长度值(longSize),删除map中value值小于该字符在map存储的数组索引值的元素—>更新map,再将该元素存入map,重复上面过程,知道数组遍历结束

    public int lengthOfLongestSubstring(String s) {
        int longSize = 0;
        char[] arr = s.toCharArray();
        Map<Character, Integer> map = new HashMap<Character, Integer>();
        for (int i = 0; i < arr.length; i++) {
            if (!map.containsKey(arr[i])) {
                map.put(arr[i], i);
            } else {
                if (map.size() > longSize)
                    longSize = map.size();
                Iterator<Map.Entry<Character, Integer>> iterator = map.entrySet().iterator();
                int limit = map.get(arr[i]);
                while (iterator.hasNext()) {
                    Map.Entry<Character, Integer> key = iterator.next();
                    if (key.getValue() <= limit) {
                        iterator.remove();
                    }
                }
                map.put(arr[i], i);
            }
        }
        longSize = map.size() > longSize ? map.size() : longSize;
        return longSize;
    }
    
    
  • 方法二(大神一)

    The idea is use a hash set to track the longest substring without repeating characters so far, use a fast pointer j to see if character j is in the hash set or not, if not, great, add it to the hash set, move j forward and update the max length, otherwise, delete from the head by using a slow pointer i until we can put character j to the hash set.
    这个想法是使用一个散列将跟踪到目前为止最长的没有重复子串字符,使用快速指针j看该字符是否在散列集,如果没有,很好,将它添加到散列集,推动j和更新的最大长度,否则,删除从头部通过使用一个指针缓慢我直到我们可以把字符j散列集。

    public int lengthOfLongestSubstring(String s) {
        int i = 0, j = 0, max = 0;
        Set<Character> set = new HashSet<>();
        
        while (j < s.length()) {
            if (!set.contains(s.charAt(j))) {
                set.add(s.charAt(j++));
                max = Math.max(max, set.size());
            } else {
                set.remove(s.charAt(i++));
            }
        }
        
        return max;
    }
    
  • 方法三(大神二:滑动窗口+数组)

    参考:参考链接
    记录当前最长字符串,同时窗口向右移动,无论何时都使得当前窗口含有当前最长不重复子串,知道窗口移到底部。返回最大长度。
    注:有个地方取了巧,在遍历字符串的时候将遍历过的字符记录在自定义长度为95的数组里(与ASCII码表相对应)。

    public int lengthOfLongestSubstring(String s)
    {
        char[] strs = s.toCharArray();
        int[] isValid = new int[95];
        int result = 0;
        int max = 0;
        for (int i = 0; i < strs.length; i++)
        {
            if (isValid[strs[i] - ' '] != 0)
            {
                result = max > result ? max : result;
                for (int j = i - max; j < isValid[strs[i] - ' ']; j++)
                {
                    max--;
                    isValid[strs[j] - ' '] = 0;
                }
            }
            max++;
            isValid[strs[i] - ' '] = i + 1;
        }
        return max > result ? max : result;
    }
    
基于YOLOv10的微小目标检测,多头检测器提升小目标检测精度 引入多头检测器助力YOLOv10,暴力提升小目标检测性能 阅读详情

相关推荐

H2O到OmniH2O细节解读,人形机器人遥操作的技术演进与哲学

摘要:CMU何泰然团队相继发表的H2O和OmniH2O论文为人形机器人遥操作领域带来突破。H2O首创Sim-to-Data方法,通过形态/动作重定向和特权筛选处理人类动作数据,PPO算法实现基础控制。OmniH2O改进为教师-学生蒸馏框架,采用DAgger算法增强泛化能力,并消除对线速度输入的依赖。这两项工作从概念验证到工程落地,建立了一套完整的动作学习范式,为具身智能研究提供了重要参考。

CyanNoah的博客 1387

LeetCode03 - 无重复字符的最长子串(Java 实现)

LeetCode03 - 两数相加(Java 实现) 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重...

肖朋伟 1029

适配adv7280m相机到rk3588的安卓平台

Kernel-5.10/arch/arm64/configs/firefly_defconfig里面增加配置CONFIG_VIDEO_ADV7180=y。出现一次开不了机器的情况,接调试口发现,在set_fmt里面用s_ctrl对mipi的频率进行设置会出现异常。设备树修改kernel-5.10/arch/arm64/boot/dts/rockchip/13.dts。把MEDIA_ENT_F_ATV_DECODER改回MEDIA_ENT_F_CAM_SENSOR。第二次编译,仅仅刷新boot.img。

chenyq14的专栏 2449

无重复最长子串java_LeetCode03 - 无重复字符的最长子串(Java 实现)

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

weixin_28942523的博客 473

基于STM32与毫米波雷达的非接触式睡眠监测系统

物联网和嵌入式系统技术正在推动医疗健康设备的智能化发展。通过传感器网络采集生理信号,结合信号处理算法实现健康监测已成为主流技术方案。毫米波雷达凭借其非接触检测特性,在呼吸、心率等生命体征监测中展现出独特优势。STM32系列MCU凭借丰富外设和低功耗特性,成为医疗级嵌入式设备的首选平台。本系统整合60GHz毫米波雷达、红外测温与无线传输模块,构建了完整的睡眠质量评估解决方案,其硬件架构设计、信号处理算法和低功耗优化策略对可穿戴医疗设备开发具有参考价值。

weixin_36369848的博客 612

QT的温湿度显示系统

大家好,这里是石侃侃的博客,欢迎前来讨论这篇文章介绍的是DHT11在2440上的基于Qt5.6的应用基于单片机系统的温湿度监测系统构成框图如图2-1所示。图2-1 系统构成框图该系统采用单片机s3c2440作为了本设计的核心元件。利用LCD作为了显示器件,利用触摸屏作为用户界面输入设备,第一行显示当前实时的温度,湿度,第二行依次显示历史时刻最高的温度值,最高的湿度值。第三行是一个文本框,记录了程...

zxpcus的博客 1万+

最长重复子串_Leetcode 03 无重复字符的最长子串

# Leetcode 03 无重复字符的最长子串[GitHub-LT-03-源码](picturetxl/Leetcode_solution):large_blue_diamond:哈希表:large_blue_diamond:最长子串:large_blue_diamond:重复元:large_blue_diamond:滑动窗口## 问题描述> 给定一个字符串,请你找出其中不含有重复字符的 ...

weixin_39922749的博客 75

Mplus—交叉滞后面板模型(Cross-Lagged Panel Model, CLPM)

本文介绍交叉滞后模型相关知识,以及显变量模型与潜变量模型在Mplus中的语法。

m0_54401011的博客 1万+

LeetCode 03 无重复字符的最长子串

LeetCode 03 无重复字符的最长子串

freefighter234的博客 164

IB网络下不同租户业务隔离方案

IB(InfiniBand)网络隔离可以在不同的通信模式下实现,其中包括 IPoIB(IP over InfiniBand)通信模式。在 IPoIB 模式下,InfiniBand 网络可以承载 IP 数据包,使得基于 IP 的应用程序能够在 InfiniBand 网络上进行通信。在这种情况下,IB 网络隔离通常指通过配置 Partition Key(PKey)来实现不同的租户或应用程序之间的网络隔离。然而,IB 网络隔离并不仅限于 IPoIB 模式。

guganly的专栏 1527

TC3XX - MCAL知识点(一):新建Tc3xx EB-tresos工程

基于EB-tresos建立Hightec或者Tasking工程的时候,第一个步骤就是需要新建一个EB-tresos的工程,本文记录一下如何新建一个EB-tresos工程,以及对其进行简单的操作。那么Tc3xx的MCAL包含哪些内容呢?

梦想技术家 2968

LeetCode03.无重复字符的最长子串(C++版)

LeetCode03.无重复字符的最长子串(C++版) 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

weixin_44971689的博客 629

Python爬虫实战:Playwright 攻克京东图书新书榜(含动态价格与分页)!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 592

Leetcode03无重复字符的最长子串

Leetcode03无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 想法 这种类型的题可以通过滑动窗口解决。 比较简便的方法是利用map,将字符和对应的下标保存为key-value对的方式,这样就可以通过下标去控制窗口显示,保证窗口内一直是没有重复元素的。这样只要遍历一边所有元素就可以获得结果。 代码 public class Solution { ...

kennyass的博客 265

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

力扣(LeetCode)3. 无重复字符的最长子串(2022.01.03)

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

ChaoYue_miku的博客 275

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【力扣03】无重复字符的最长子串

滑动窗口技术

TommiWei的博客 490

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LeetCode-03 无重复字符的最长子串

LeetCode-03 无重复字符的最长子串 目录 LeetCode-03 无重复字符的最长子串 1.题目描述 2.主要思路 3.实现代码 3.1 最简单的利用数组来进行操作 3.2 双指针 1.题目描述 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",...

chenlang2015的博客 251

03.力扣LeetCode无重复字符最长子串(暴力递归或Java哈希表)

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

面条有点辣 274

力扣挑战Day03_3.无重复字符的最长子串

力扣挑战Day03_3.无重复字符的最长子串题目描述解题思路尝试1错误原因尝试2优化 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是

weixin_43915128的博客 224

Leetcode03-无重复字符的最长子串

Leetcode03 无重复字符的最长子串 【滑动窗口】 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答

weixin_43514766的博客 217

leetcode03-无重复字符的最长子串

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

qq1010234991的博客 154

leetcode_03. 无重复字符的最长子串

leetcode_03. 无重复字符的最长子串题目思路分析代码展示思路分析(改进)代码展示(改进) 题目 leetcode题目链接 思路分析 题目要求:求不含有重复字符的 最长子串 的长度。 这题 我的第一思路就是2层循环 第一层循环,字符串从头开始遍历 第二层循环,计算每一个下标为i的元素开头的最大不连续的字符串 并计算其长度 代码展示 class Solution: def leng...

lvpeng88的博客 193

LeetCode-03 :无重复字符的最长子串长度

LeetCode-03 :无重复字符的最长子串长度题目描述暴力解法滑动窗口,一次循环(unordered_map) 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “...

qq_26523019的博客 332

无重复字符的最长子串-Leetcode03

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是...

MONKEY_Quan的博客 309

leetcode03 无重复字符的最长子串

  3. 无重复字符的最长子串 随机一题 给定一个字符串,找出不含有重复字符的最长子串的长度。 示例 1: 输入: "abcabcbb" 输出: 3  解释:无重复字符的最长子串是 "abc",其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 无重复字符的最长子串是 "b",其长度为 1。 示例3:  输入: "pwwkew" 输出: 3...

北川大大的博客 315

Leetcode03无重复字符最长子串

问题描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 思路: 动态指针(滑动窗口):设置首尾指针,初始指向首字符,同时设置最长子串长度max。尾指针后移,若所指新字符不为重复字符,继续后移;否则停止后移,但首指针后移,直至子串中没有重复指针。重复上述步骤直至遍历结束。 //cpp动态指针 class Solution { public: int lengthO...

320
上一篇: LeetCode02-两数相加
下一篇: Maven中plugins和pluginManagement
fly-liuhao
博客等级 码龄9年 147粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值