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

一个网站有多大深圳网站建设费用大概多少

一个网站有多大,深圳网站建设费用大概多少,襄阳教育云平台网站建设,商务网站规划与建设课程设计题目 添加链接描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2:输入: s "bbbbb" 输出…

题目

添加链接描述

给定一个字符串 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 由英文字母、数字、符号和空格组成

滑动窗口+Set

/*** 滑动窗口+Set*/
private static int lengthOfLongestSubstring(String s) {if (s == null) {return 0;}int length = s.length();// 将当前窗口 [left, right) 中字符存储在 HashSet 中Set<Character> characterSet = new HashSet<>(length);int left = 0, right = 0, ans = 0;while(left < length && right < length) {char c = s.charAt(right);if (!characterSet.contains(c)) {// 滑动窗口[left, right)字符没有重复,字符c添加进setcharacterSet.add(c);// 滑动窗口left不动,right右移一位right++;// 更新无重复子串长度ans:滑动窗口[left, right)的长度=right-leftans = Math.max(ans, right-left);} else {// 存在字符重复,说明滑动窗口 [left, right) 中存在与 c 相等的字符// set集合中删除字符串left处的元素,这里无法直接定位到重复字符的下标,需要从left开始删除到重复位置characterSet.remove(s.charAt(left));// 滑动窗口right不动,left右移一位,循环执行到重复元素被删除left++;}}return ans;
}

优化的滑动窗口+HashMap

如果 s[right] 在 [left,right) 范围内有与​ s[k] 重复的字符,不需要逐渐增加 left 。 可以直接跳过 [left,k] 范围内的所有元素,并将 left 变为 k+1

/**
* 滑动窗口+HashMap
*/
private static int lengthOfLongestSubstring2(String s) {if (s == null) {return 0;}int length = s.length();// 将当前窗口 [left, right) 中字符存储在 HashMap 中// key:字符,value:字符下标HashMap<Character, Integer> map = new HashMap<>(length);int ans = 0;for (int left = 0, right = 0; right < length; right++) {// 滑动窗口右指针位置char c = s.charAt(right);// 判断字符c是否出现过Integer index = map.get(c);// 字符c重复,索引index,当前左指针left// 左指针直接跳转到index+1位置,s[index] == s[right]// 但是不能超过当前left,取max(index+1, left)// 0 1 2 3 4 5 6 7 8// a b c d c e b g h//         l   r// 此时 left 索引为 4,right 遍历到 b,b重复,对应索引 1, 此时不能回溯,left不变if (Objects.nonNull(index)) {left = Math.max(index + 1, left);}// 计算当前子串长度ans = Math.max(ans, right-left+1);// 当前字符加入map集合,如果存在就用当前下标right覆盖map.put(c, right);}return ans;
}
http://www.yayakq.cn/news/391469/

相关文章:

  • 高端网站的设计开发公司搜索引擎排名优化公司
  • 哪里建网站性价比高网站建设的背景及意义
  • 做织带的网站设计网站建设价格
  • 做一套二级域名网站怎么做山东聊城建设局网站
  • 网站卖了对方做违法吗企业网站设计建设长春
  • 网站建设管理情况番禺seo
  • 教学网站建设目的网站建站和推广服务公司
  • 北京网站建设网站开发中国建筑网官网企业愿景
  • 重庆网站关键词排名优化上海58同城招聘网最新招聘
  • 三联网站建设网站目录提交
  • 重庆商城网站建设地址个人网站怎么备案
  • 做网站需要网站负责人销售管理软件app
  • 网站开发的公司推荐网站开发 合同范本
  • 贵阳自助建站软件asp微信网站
  • 做百科的网站外贸流程图解
  • 做的网站怎么提交到百度上去用python写一个简单的网站
  • 自己怎么样做游戏网站seo如何优化排名
  • nodejs做视频网站网站手机端自适应
  • 正规的家居行业网站开发龙华做网站
  • 合肥网站空间网站建设方案书人员资金安排
  • 网站 色调常见的网络推广方法有几种
  • 全网营销建设网站泉港网站建设推广服务公司
  • 东莞技术支持 骏域网站建设东莞新增活动轨迹
  • 响应式网站建设的未来发展6怎么免费下wordpress
  • 哈尔滨网站制作多少钱设计网页多少钱
  • 攀枝花三线建设网站陕西找人做网站多少钱
  • 免费游戏打开就能玩济南网站优化推广公司
  • 德州网站建设德州网站建设asp编程
  • 个人网站怎么备案可以做哪些微信 公众号导入wordpress
  • 惠州开发做商城网站建设哪家好婚纱影楼网站建设