首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

重复字符的最长子串

示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为重复字符的最长子串是 “abc”,所以其长度为 3。...示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为重复字符的最长子串是 “b”,所以其长度为 1。...示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为重复字符的最长子串是 “wke”,所以其长度为 3。...0 { return 0; } int i = 0, j = 0;//i指向重复字符子串的第一个位置,j指向重复字符子串的最后一个字符d的后面一个位置 int max =1;/...//每次新加入一个元素,就把新加入的元素与前面字符串进行比较,确保没有与前面字符串中某个字符重复 //如果当前j指向的字符和子串中某个字符重复,就把i移动到j的位置 //将新加入的字符与前面的重复子串进行比较

55420

重复字符的最长子串

JavaScript实现LeetCode第3题:重复字符的最长子串 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。...示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为重复字符的最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为重复字符的最长子串是 "b",所以其长度为 1。...解题思路 这是一道动态规划题目 1.声明两个变量 currentString:当前重复字符的子串, max:重复字符的最大子串长度 2.判断当前的最长串中是否有该字母s[i], 如果没有,则加上s[...i], 如果有,则需要从重复的位置断开,开始新的计算 计算该次循环出现的重复字符的最大子串长度 解题方案 /** * @param {string} s * @return {number} *

79520

重复字符的最长子串

1.题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为重复字符的最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为重复字符的最长子串是 "b",所以其长度为 1。...2.2图解 计算完第一个字符,目前重复字符的最长子串是a,所以l=1 计算完第二个字符,目前重复字符的最长子串是ab,所以l=2 计算完第三个字符,目前重复字符的最长子串是abc,所以l=3 计算完第四个字符...,删除a,以及a之前的字符,目前重复字符的最长子串是bca,所以l=3 计算完第五个字符,删除b,以及b之前的字符,目前重复字符的最长子串是cab,所以l=3 计算完第六个字符,删除c,以及c之前的字符...,目前重复字符的最长子串是abc,所以l=3 计算完第七个字符,删除b,以及b之前的字符,目前重复字符的最长子串是cb,所以l=2 计算完第八个字符,删除b,以及b之前的字符,目前重复字符的最长子串是

67710

JS判断重复数组是否有重复

大家好,今天我们来讲一下,如何使用javascript判断一个数组之中,是否有相同重复的元素。...数组也是一样,要判断一个数组中是否有重复的元素, 最简单,最直观的方法, 就是把数组复制一份,然后用复制的数组中的每一项,和原数组逐个比较一遍, 如何有任一个相同,就返回true,否则就返回false。...arr[1]的值是3, 就等于是 '1,"",4,5,2'.indexOf(3),当然返回还是-1,没找到, 以此类推一直到arr数组的最后一个 就这样整个数组的循环一遍, 其中任何一个 >-1,就是有重复...,否则就是没有重复。...今天这个例子,它的功能很有限的, 只能判断是否有重复, 只能返回true或是false, 下次我们讲一个稍稍复杂一点的

7.1K90

Leetcode 重复字符的最长子串

重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 我的思路 & 实现 使用两个指针,分别为头指针和尾指针。...头指针指向重复字符子串头部,一个指向子串尾部,初始时,两个指针都指向字符串第一个元素。...查找效率高),存放当前子串已有元素 尾指针检查当前所指元素是否在当前子串中出现过(查找哈希表中是否有当前元素),如果不存在,将当前元素存入哈希表,尾指针后移,并更新最大长度;如果存在,说明已经找到了一个重复字符的子串...优化 优化了之前的代码,性能大大提高 之前的代码在找到一个重复字符子串后,采用make重新创建一个map的方法来清空原map,这个操作是费时的 由于采用了创建新的map来清空map,导致尾指针在寻找下一个重复字符子串时需要返回到与头指针一样的位置...,这样就多了不必要的遍历,以及往map中添加元素的操作,很费时 在已经找到一个重复字符子串之后,在头指针右移的过程中,同时删除map中相关的元素 这样就不需要新创建一个新map,也大大减少空间复杂度,

12930
领券