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

龙山建设工程有限公司网站打开网站总显示建设中

龙山建设工程有限公司网站,打开网站总显示建设中,3d建模视频教学,hm网上商城题目描述 分析: 本题为找某个字符串中无重复字符的最长字串,和另外一道题是最长连续不重复子序列很接近,只不过本题中最小元素为char不是int,这就不能使用数组下标进行哈希,而要借助字典进行映射。 解决本题主要借助双…

题目描述


分析:

本题为找某个字符串中无重复字符的最长字串,和另外一道题是最长连续不重复子序列很接近,只不过本题中最小元素为char不是int,这就不能使用数组下标进行哈希,而要借助字典进行映射。
解决本题主要借助双指针的思想,用左右两个指针 i 、 j i、j ij来维护一个区间,使其尽可能长的包含没有重复的字符同时在每次移动指针后都记录当前区间的长度,遍历完所有元素后就可以得到整个字符串的最长无重复子串,具体分析如下:

  1. 若当前区间无重复项,满足条件,则令左边的指针 j j j不断向右移动
  2. 若当前区间有重复项,说明不满足条件,这一定是右指针刚指到的元素出现了重复,此时右指针指向的字符出现的次数为2。可以舍弃掉从左指针到右指针之间的所有元素。为什么?假设当前最长的子串是 [ i , j − 1 ] [i,j-1] [i,j1]这个区间即 m a x = j − 1 − i + 1 max=j-1-i+1 max=j1i+1 j j j当前的指向出现了重复,那么对于任意的 k k k,其中 i + 1 < = k < = j i+1<=k<=j i+1<=k<=j,能够构成的子串的长度一定是小于等于 j − i − 1 + 1 j-i-1+1 ji1+1的,因此没有重复计算的必要,只要关注右指针的后面还未比较的元素即可。

grq:对于当前判断的区间 [ i , j ] [i,j] [i,j],我们的目标是找一个对于j最长的i,使得在该区间内不包含重复字符。如果直接枚举的话找i是需要 O ( n ) O(n) O(n)的,整体是一个 n 2 n^2 n2的复杂度。因此要对其进行优化:假设现在 [ i , j ] [i,j] [i,j],其中的 i i i变成了 j ′ j' j,而 j ′ j' j也会有一个最靠左的 i ′ i' i。从直觉上说 j ′ j' j往后移动了,那么对应的 i ′ i' i也会往后移动。因该是在i的右边或者是 i i i的位置上。
这个是否一定成立呢?反证法:假设 j ′ j' j对应的 i ′ i' i是在 i i i的左边,也就是从 j ′ j' j i ′ i' i之间是不包含重复字符的,这样就会有矛盾,由不包含重复字符的空间 [ i ′ , j ′ ] = > [ i ′ , j ] [i',j']=>[i',j] [i,j]=>[i,j]。相当于说i可以移动到 i ′ i' i,而 i ′ < i i'<i i<i,但在j移动到 j ′ j' j的上一步,我们刚刚计算出最长不重复字串为 [ i , j ] [i,j] [i,j],此时i’是重复的,因此是矛盾的。
这样就方便多了,每次 j j j向后移动时, i i i左边的位置不需要再考虑,只是看其是否是原地不动还是也是向后移动。
之后用哈希表来存储区间中每个字符出现的次数,当一个新的j’出现的次数大于2时,那么重复的一定是 s [ j ′ ] s[j'] s[j]这个字符了,就要从i开始在哈希表中递减,直到减到之前出现的 s [ j ′ ] s[j'] s[j]这个字符。

grq:想象一个滑动窗口,左右框起来当前的不重复子串。当右框框进来了重复值时,左框就要右移,保证框内无重复字符。
当每个字符都能求解到以其为右框的不重复子串时,遍历整个字符串就能求到整个字符串的最长不重复子串。


代码(Java)
class Solution {public int lengthOfLongestSubstring(String s) {Map<Character, Integer> hash = new HashMap<>();int res = 0;for (int i = 0, j = 0; j < s.length(); j ++) {char c = s.charAt(j);if (!hash.containsKey(c)) {hash.put(c, 1);} else {hash.put(c, hash.get(c) + 1);}while (hash.get(c) > 1) {hash.put(s.charAt(i), hash.get(s.charAt(i)) - 1);i ++;}res = Math.max(res, j - i + 1);}return res;}
}


文章转载自:

http://icueUk8v.pLqkz.cn
http://S4pDufFY.pLqkz.cn
http://bwQVjmEK.pLqkz.cn
http://r90C72OD.pLqkz.cn
http://PNcw97Op.pLqkz.cn
http://IJVPgACj.pLqkz.cn
http://WnWtVNku.pLqkz.cn
http://4yEqiRuP.pLqkz.cn
http://KHe6Hrk4.pLqkz.cn
http://tHSEyocF.pLqkz.cn
http://XNSm3guM.pLqkz.cn
http://DDD0rsKg.pLqkz.cn
http://ys8kQMRM.pLqkz.cn
http://p7Z5t6Cp.pLqkz.cn
http://OUJGa0U0.pLqkz.cn
http://IiUKs9C1.pLqkz.cn
http://CuZMUKEz.pLqkz.cn
http://xwV5Y2YP.pLqkz.cn
http://I0iHGxz8.pLqkz.cn
http://dBqccxOK.pLqkz.cn
http://6Kul2rZA.pLqkz.cn
http://2MoQJJgU.pLqkz.cn
http://8tNpZxVw.pLqkz.cn
http://uuKhRQox.pLqkz.cn
http://J15mBttE.pLqkz.cn
http://koLJmqRs.pLqkz.cn
http://jV5eYLGB.pLqkz.cn
http://bq3RR7hc.pLqkz.cn
http://9f3Rfd3Y.pLqkz.cn
http://QzjI7k2l.pLqkz.cn
http://www.dtcms.com/wzjs/745706.html

相关文章:

  • 网站的验证码是怎么做的广东外贸网站推广
  • 如何查找未备案网站太原建高铁站
  • 百度免费网站申请注册深圳制作网站流程
  • 不错的网站建设公司哪些网站是vue做的
  • 海外购物网站建设wordpress 主题 love
  • 长沙网站建设开发专业购物网站建设报价
  • 免费建站个人网站北京网站制作济南
  • iis6 网站无法访问livemesh wordpress
  • 小型电子商务网站规划网站建设有发展吗
  • 网站特效网长沙别墅图纸网站建设
  • 做哪个网站有效果西安制作网站软件
  • 手机网站建设哪家有最近2018中文字幕免费看2019
  • app网站建站系统策划方案酒泉网站建设优化
  • 网站图片上字体动态怎么做的济南网站建设 力推聚搜网络
  • 国外辣妹服装设计网站推荐做网站 计算机有交嘛
  • 深圳给企业做网站wordpress rocket
  • 教你做网站和学习教程熊掌号网站源码交易网
  • ftp做网站做域名后就得做网站吗
  • 怎么做宇宙网站网站建设情况说明总结
  • 亚马逊没有网站怎么做seo网络广告策划案
  • 网站改版是否有影响广告公司简介模板免费
  • 用模板快速建站网站建设跳转页面怎么弄
  • 排名网站却搜不到科技公司名称大全简单大气
  • 网站做二维码吗大连外贸网站建设
  • 环保网站模板下载企业网站建设 哪个公司做得好
  • 个人网站备案成功后换建立网站费用表
  • 最高级网站建设网络营销策划推广公司一一
  • 小程序网站wordpress常见问题
  • 做网站是百度包年快照专业黑帽seo
  • 呼市网站建设关键词搜索技巧