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

蒙古文网站建设工作计划卖摄影作品的网站

蒙古文网站建设工作计划,卖摄影作品的网站,唐山百度搜索排名优化,关注love石家庄公众号微信这是一道难度为中等的与滑动窗口相关的题目,让我们来看看题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xf…

这是一道难度为中等的与滑动窗口相关的题目,让我们来看看题目描述:

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

示例 1:

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


示例 2:

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


示例 3:

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


提示:

  • 0 <= s.length <= 5 * 1 0 4 10^4 104
  • s 由英文字母、数字、符号和空格组成

滑动窗口是什么?

滑动窗口可以归为快慢双指针,一快一慢两个指针前后相随,中间的部分就是窗口。滑动窗口算法技巧主要用来解决子数组问题,比如让你寻找符合某个条件的最长/最短子数组

这道题目说人话版本:

不含重复字符的子串:在这个连续的片段中,每个字符只出现一次。
子串:是指一个字符串中的连续一段字符。
在所有满足“不含重复字符”的子串中,找出那个字符个数最多的子串,并返回这个子串的长度。

题解

class Solution {public int lengthOfLongestSubstring(String s) {// 定义一个 HashMap 用于记录当前窗口中每个字符出现的次数Map<Character, Integer> window = new HashMap<>();// 初始化滑动窗口的左右指针和结果变量,left 表示窗口左边界,right 表示窗口右边界,res 用于存储最长子串的长度int left = 0;int right = 0;int res = 0;// 当右指针未达到字符串末尾时,循环遍历字符串while (right < s.length()) {// 取出右指针位置的字符,并命名为 cchar c = s.charAt(right);// 右指针右移一位,窗口扩张right++;// 将字符 c 添加到窗口中,更新其出现次数(若不存在则默认为 0,再加 1)window.put(c, window.getOrDefault(c, 0) + 1);// 如果字符 c 在窗口中的出现次数大于 1,说明窗口中存在重复字符while (window.get(c) > 1) {// 取出左指针位置的字符,记为 dchar d = s.charAt(left);// 左指针右移一位,窗口缩小left++;// 更新字符 d 在窗口中的出现次数(减去 1,因为 d 已从窗口中移除)window.put(d, window.get(d) - 1);}// 窗口内没有重复字符时,更新最长子串的长度,取当前窗口大小 (right - left) 与之前记录的最大值的较大者res = Math.max(res, right - left);}// 返回最长无重复字符子串的长度return res;}
}

问题与解答

[NOTE] 问题1
getOrDefault()的用法?
getOrDefault 是 Java 中 Map 接口提供的一个方法,用于在获取指定 key 对应的值时,如果该 key 不存在于 Map 中,则返回一个默认值,而不是返回 null。这样可以简化代码,避免额外的 null 判断。
语法:

getOrDefault(Object key, V defaultValue)
  • key:要查找的键。
  • defaultValue:当 key 不存在时返回的默认值。
    例如:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 2);// 获取键 "apple" 对应的值,如果不存在则返回默认值 0
int countApple = map.getOrDefault("apple", 0);  // 返回 2,因为 "apple" 存在且其值为 2// 获取键 "banana" 对应的值,如果不存在则返回默认值 0
int countBanana = map.getOrDefault("banana", 0);  // 返回 0,因为 "banana" 不存在

[NOTE] 问题2:
charAt()的用法?
charAt() 是 Java 中 String 类提供的一个方法,用于返回字符串中指定索引位置处的字符。索引从 0 开始。
例如:

String str = "Hello, World!";
char ch = str.charAt(7); // 获取索引为 7 的字符,即 'W'(前面有一个空格)
System.out.println(ch);  // 输出: W

总结

这道题目不算是一道难题。
滑动窗口算法的核心逻辑是:两个while

int left = 0, right = 0;while (right < nums.size()) {// 增大窗口window.addLast(nums[right]);right++;while (window needs shrink) {// 缩小窗口window.removeFirst(nums[left]);left++;}
}

一般的滑动窗口的题目模板如下:

// 滑动窗口算法伪码框架
void slidingWindow(String s) {// 用合适的数据结构记录窗口中的数据,根据具体场景变通// 比如说,我想记录窗口中元素出现的次数,就用 map// 如果我想记录窗口中的元素和,就可以只用一个 intObject window = ...int left = 0, right = 0;while (right < s.length()) {// c 是将移入窗口的字符char c = s[right];window.add(c)// 增大窗口right++;// 进行窗口内数据的一系列更新...// *** debug 输出的位置 ***// 注意在最终的解法代码中不要 print// 因为 IO 操作很耗时,可能导致超时printf("window: [%d, %d)\n", left, right);// ***********************// 判断左侧窗口是否要收缩while (left < right && window needs shrink) {// d 是将移出窗口的字符char d = s[left];window.remove(d)// 缩小窗口left++;// 进行窗口内数据的一系列更新...}}
}

来自labuladong
链接如下: 滑动窗口算法核心代码模板 | labuladong 的算法笔记


文章转载自:

http://crsNeLoM.pnmgr.cn
http://pIzesg2O.pnmgr.cn
http://1IdfNMRs.pnmgr.cn
http://I4LSzLs5.pnmgr.cn
http://Y4qlaiJd.pnmgr.cn
http://ZRALj9tp.pnmgr.cn
http://d74KQcSk.pnmgr.cn
http://UUl3e5kZ.pnmgr.cn
http://kepbo9r6.pnmgr.cn
http://CaZjonui.pnmgr.cn
http://IzI65ElU.pnmgr.cn
http://vXzaA976.pnmgr.cn
http://sEtt2S37.pnmgr.cn
http://n0e3lRUJ.pnmgr.cn
http://8XVaAHQd.pnmgr.cn
http://EbgJ5w5b.pnmgr.cn
http://tuAVVlnf.pnmgr.cn
http://7Jti5MQL.pnmgr.cn
http://5NNS82rc.pnmgr.cn
http://c8t6WYch.pnmgr.cn
http://nCycKy5E.pnmgr.cn
http://JS7R0aAg.pnmgr.cn
http://vkQUYSMo.pnmgr.cn
http://9pSmP7IM.pnmgr.cn
http://sIHCFez0.pnmgr.cn
http://vrKS84Wy.pnmgr.cn
http://hSXga2Be.pnmgr.cn
http://ZgrSkxNy.pnmgr.cn
http://o6ongVu3.pnmgr.cn
http://xKrEBWru.pnmgr.cn
http://www.dtcms.com/wzjs/762004.html

相关文章:

  • 成都 视频网站建设上海企业云服务平台
  • 备案期间怎么访问网站wordpress地图插件多久生效
  • 自己用wordpress建站wordpress优化软件
  • 云游戏平台山东seo费用多少
  • 长春可做微网站的公司百度电脑端网页版入口
  • wordpress仿站教程百度云杭州公司注销网站备案
  • seo网站关键词优化哪家好石家庄企业网站网页设计
  • 怎么做公司招聘网站网站技能培训机构
  • 湘潭网站seo磐石网络网站管理 上传模板
  • 哈尔滨网站制作方案定制做个卖东西的网站
  • 学校网站建设制作方案成都设计咨询集团官网
  • 网站后台模板 如何使用用vs2010做网站导航
  • APP网站建设开发企业发展东莞商贸公司寮步网站建设价格
  • 啊宝贝才几天没做网站没备案的网站能用吗
  • 黄石企业做网站室内设计资料网站
  • 新乡网站建设哪家优惠wordpress手机动漫主题
  • php网站开发app接口徐州关键词优化排名
  • php网站后台密码怎么修改网站开发费用如何记账
  • 哪个网站做兼职猎头做微信的微网站
  • ios7 风格 网站门户网站建设网络推广
  • 资阳公司网站建设营销型网站开发营销
  • 临海如何制作公司网站框架it运维是做什么的
  • 查询网站所有死链接网站建设的完整流程图
  • 专业的设计网站在线网页制作
  • 武陟网站建设游戏开发网
  • 北京燕化工程建设有限公司网站简易的网站模板
  • 购物网站开发的难点自己公司网站如何添加qq
  • 接做网站的六安网站建设六安
  • 河池环江网站建设对网站的建议和优化
  • 学会python做网站全国网站备案拍照