剑指-48 最长不含重复字符的子字符串
思路滑动窗口,设置left边界和最大值max,通过map来查询每个字符的下标每当遍历到新的字符,分两步骤进行处理map获取字符下标,如果没有存,则代表是非重复字符串,添加map并更新max值max = Math.max(right - left + 1, max)如果map已存在,更新窗口left
思路滑动窗口,设置left边界和最大值max,通过map来查询每个字符的下标每当遍历到新的字符,分两步骤进行处理map获取字符下标,如果没有存,则代表是非重复字符串,添加map并更新max值max = Math.max(right - left + 1, max)如果map已存在,更新窗口left
题目地址先小结一下该类型的题目思考方向。该种类型题目都是当前情况的选择取决于之前的之前的情况(这种说法就很递归)。通常这个时候可以考虑一下之前的选择可能会有几种,属于是逆推思想。可以看下面的思路解析思路1使用滑动窗口的思想解决在遍历到元素k的时候,之前的窗口值 value 会存在两种情况(1)窗口值
思路第一动态规划...画格子,当到第n天时,n-1天的利润最大值,然后判断第n天是否会有利润提升,如果有的话就更新利润最大值因为觉得动态规划有点麻烦,更简单类似于滑动窗口的解法,最小利润为0,窗口内的股价最低值为min,右窗口不断遍历更新最大利润值以及窗口内股价最低值,这样遍历到最后就可以取得整个数
思路一:(该解法面对最后的大字符串[31000个字符]会超时)因为题目中要求取不存在重复字符的最大字符串,第一想法是想理解成贪心问题,总的长度为n,判断k个格子的不重复子字符串是否存在。如求取当1个字符长度的不重复字符串是否存在;2个字符长度的不重复字符串是否存在;3个字符长度的不重复字符串是否存在