首页 > 编程语言 >无重复字符的最长子串 leetcode 3 C++ 滑动窗口

无重复字符的最长子串 leetcode 3 C++ 滑动窗口

时间:2022-10-04 19:44:32浏览次数:78  
标签:子串 map right sub max C++ len leetcode left

C++ 版本的滑动窗口解决方案 class Solution { public:     int lengthOfLongestSubstring(string s) {             if(s.empty()) return 0;             unordered_map<char,int> sub_map;             int left=0;             int right = 0;              int max_len = 1;             while(right < s.size()){ // 如果在已经存在的字符中找到该字符,更新该字符的新位置,并且计算在此之前的不重复子串的长度,进行取极大值。
                if(sub_map.find(s[right])!=sub_map.end()) {                     if(sub_map[s[right]]>= left){                         max_len = max_len > (right - left) ? max_len : right - left;                         left = sub_map.at(s[right])+1;                     }else{                      }                 }                  sub_map[s[right]] = right;                 right++;             }             max_len = max_len > (right -left ) ? max_len:right-left;             return max_len;     } };

标签:子串,map,right,sub,max,C++,len,leetcode,left
From: https://www.cnblogs.com/daniel123/p/16754300.html

相关文章

  • C++的命名空间
    C++的命名空间在C++的应用中,可能会出现在不同的库中存在相同名称的函数,导致名称冲突;因此引入命名空间这一概念,用于区分不同库中相同名称的函数、类、变量等。 1、作用......
  • 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
     Datawhale干货 作者:吴忠强,东北大学,Datawhale成员本篇文章虽然是VsCode挂名,但其实介绍了两款神器:Vscode和Vim,这两个结合起来,开发效率蹭蹭蹭!!!之前接触过VsCode但很少......
  • 25-70K*14薪| 梅卡曼德视觉算法、C++软件开发工程师等职位招聘
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。高级C++软件开发工程师薪水:25K-60K*14薪岗位职责:1、负责相关软件系统(客户端)的设......
  • C++ 实现有汉字和英文的字符串逆转
    设指针p1指向初始字符串s,再新建一个字符串tmp用来存放逆转后的字符。此时可以把p1和tmp看成两条链表,指针p2为实现逆转的中转站,p2的长度为tmp和s的长度之和,接下来就通过链表......
  • C++并发编程 [02] :线程管控
    发起线程线程通过构建std::thread对象而启动,该对象指明线程要运行的任务。可以传入任何可调类型给std::thread来构建一个std::thread对象。需要包含头文件<thread......
  • [LeetCode] 531. Lonely Pixel I
    Givenan mxn picture consistingofblack 'B' andwhite 'W' pixels,return thenumberof black lonelypixels.Ablacklonelypixelisacharacter '......
  • Effective C++ - 条款7 - 关于基类的virtual析构和non-virtual析构
    如果基类的析构是non-virtual的,在使用baseclass指针指向一个derived对象,并且这个对象由baseclass指针删除时,derived对象的成分并没有被删除,原因是baseclass定义了一个n......
  • leetcode 235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公
    一、题目大意给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点......
  • C++ 自学笔记 Declaring references 引用
    引用:类型&Y=X;Y是X的另一个名字   pointersvsreferences(指针vs引用)(ps:引用就是用的const指针)  java:所有对象放在堆里只能用指针(不能计算用的const)访......
  • C++ 自学笔记 const
    const变量  const是变量不是常量 指针const写在*号后面       const函数可以构成重载 ......