当前位置: 首页 > news >正文

莱芜金点子信息港官网宁波seo整站优化软件

莱芜金点子信息港官网,宁波seo整站优化软件,华山论剑西凤酒网站建设,短视频获客目录 一、题目描述 二、解题思路 1、什么是滑动窗口算法? 2、滑动窗口一般解题模板 三、参考答案 一、题目描述 无重复字符的最长子串 给定一个字符串s ,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s "abcabcbb"…

目录

一、题目描述

二、解题思路

1、什么是滑动窗口算法?      

2、滑动窗口一般解题模板

三、参考答案


一、题目描述

       无重复字符的最长子串

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

示例 1:
输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是子串的长度,"pwke" 是一个子序列,不是子串。
     
提示:
0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成
 

 注:子串和子序列的区别,子串是从一个原始字符串中直接提取的、在原字符串中连续的一段字符。例如,在字符串"abc"中,"ab"和"bc"都是其子串。相对地,子序列则由原序列中不必须连续的字符组成,只需保持这些字符在原序列中的相对顺序。如在字符串"abc"中,"ac"构成了一个子序列。

二、解题思路

       本题使用滑动窗口方法来解决。

1、什么是滑动窗口算法?      

       滑动窗口算法是一种通过在特定数据结构上移动“窗口”来执行操作的算法。它主要用于优化时间复杂度,特别是在处理数组和字符串相关问题时表现出色。滑动窗口算法的核心在于使用两个指针(左指针和右指针)来标识当前处理的数据范围,并通过移动这两个指针来调整窗口大小,同时根据具体问题的要求更新中间结果。滑动窗口算法的基本思想是通过维护一个窗口,并通过移动该窗口的两个边界(left 和 right 指针)来处理问题。当右边界扩展到符合某种条件或者到达数据结构的末尾时,再通过移动左边界来缩小窗口,并在此过程中更新所需的结果。这种左右指针的移动方式使得算法能够在单次遍历中解决原本需要嵌套循环的问题,从而将时间复杂度从 O(N^2) 降低到 O(N)。

2、滑动窗口一般解题模板
//外层循环扩展右边界,内层循环扩展左边界
for (int l = 0, r = 0 ; r < n ; r++) {//当前考虑的元素while (l <= r && check()) {//区间[left,right]不符合题意//扩展左边界}//区间[left,right]符合题意,统计相关信息
}

三、参考答案

         根据上述解题思路得到的参考代码如下:

class Solution {public int lengthOfLongestSubstring(String s) {//滑动窗口char[] ss = s.toCharArray();Set<Character> set = new HashSet<>();//去重int res = 0;//结果for(int left = 0, right = 0; right < s.length(); right++) {//每一轮右端点都扩一个。char ch = ss[right];//right指向的元素,也是当前要考虑的元素while(set.contains(ch)) {//set中有ch,则缩短左边界,同时从set集合出元素set.remove(ss[left]);left++;}set.add(ss[right]);//别忘。将当前元素加入。res = Math.max(res, right - left + 1);//计算当前不重复子串的长度。}return res;}
}

       时间复杂度分析:由于每个字符最多会被访问两次(起始指针和结束指针各一次),所以时间复杂度为O(n),其中n为字符串的长度。

       空间复杂度分析:O(∣Σ∣),其中 Σ 表示字符集(即字符串中可以出现的字符),∣Σ∣ 表示字符集的大小。在本题中没有明确说明字符集,因此可以默认为所有 ASCII 码在 [0,128) 内的字符,即 ∣Σ∣=128。我们需要用到哈希集合来存储出现过的字符,而字符最多有 ∣Σ∣ 个,因此空间复杂度为 O(∣Σ∣)。

http://www.yayakq.cn/news/444376/

相关文章:

  • 网站建设找宙斯站长工具html家乡网站设计
  • 网站跳出率太高2017wordpress整站源码
  • 建设英文网站南谯区城乡建设局网站
  • 网站开发配置管理计划sqlite 网站开发
  • 语文建设网站idmd设计
  • 青岛网站运营推广Dw制作个人网站
  • 宁德市住房和城乡建设局网站简历制作网站免费
  • 寻找做网站的公司云系统网站建设合同
  • 网站建设如何定价wordpress博客模板安装失败
  • 淘客优惠券推广网站怎么做漳州 网站建设公司
  • 福州 网站设计手机网站建设公司联系电话
  • 梧州推广网站服务商网络产品服务的提供者不得设置
  • php网站建设流程图专业企专业企业网站设计
  • itc 做市场分析的网站怎么建设淘宝客网站
  • 诸城网站制作网站建设需要些什么
  • 网站开发费用属于哪种无形资产相城区建设局网站
  • 佛山市骏域网站建设建筑工程网上保健网站
  • 外贸网站建设排名python做网站好吗
  • 资讯网站模板怎样查看一个网站的域名
  • 珠海网站建设找哪家好google建立网站
  • 海关企业信息查询网站网站建设合同的验收表
  • 扬州建设工程信息网站wordpress 优化seo
  • 如何建设网站教程视屏开发app用什么框架
  • 升级的网站显示什么做视频背景音乐网站
  • 网站源码交易平台代码厦门外贸网站建设公司
  • 宜春做网站的联系电话管理网站建设公司好吗
  • 做优化网站多少钱有哪个网站做ic
  • iptc网站开发工程师asp考试试题答案我要推广
  • 沈阳网站建设沈阳做网站获取手机号码
  • 抚州建设公司网站找活做的网站