
LeetCode
文章平均质量分 84
博客菜鸟飞飞飞
blog rookie
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode75——颜色分类(三指针法)
题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例:示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:输入:nums = [0]输出:[0]示例 4:输入:nums = [1]输出:[1]题目分析题目要得到的原创 2020-12-22 20:01:43 · 336 阅读 · 0 评论 -
LeetCode540——有序数组中的单一元素(二分法)
题目描述给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例:示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10题目分析这次是用二分法的思想,你会发现下标 i(i是偶数)的数与 i+1(i+1是奇数),在遇到出现一次的数之前都是 nums[i] == nums[i+1] , 在出现一次数的右边, nums[i] != nums[i+1] ,我们可以通过这一点进行二分查原创 2020-12-10 22:06:04 · 192 阅读 · 0 评论 -
LeetCode540——有序数组中的单一元素(异或法)
题目描述给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例:示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10题目分析代码非常的简单明了,其实最核心的就是异或的思想,因为如果一个数只出现一次就代表这个数组的个数一定是奇数,那么出现两次的数,因为数值相同,所以异或的结果是0,那么数组中所有的数异或得到的结果就是那个只出现一次的数。代码class Solution原创 2020-12-09 23:07:18 · 210 阅读 · 0 评论 -
LeetCode47——全排列||(递归法)
题目描述给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]题目分析这一题和上一题LeetCode46——全排列(递归法)大体思路相同,唯一的区别就是这里面有重复数字出现的情况。1.我们先进行排序。2.此时我们要设置prenum,每次判断当前的数和prenum不相同的情况在进行接下来的循环操作。3.我们用Boolean数组来替代hashset,因为重复数字的出现。代码class Solution原创 2020-08-18 18:15:11 · 186 阅读 · 0 评论 -
LeetCode43——字符串相乘
题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比原创 2020-08-14 21:59:51 · 125 阅读 · 0 评论 -
LeetCode53——最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。题目分析定义两个变量maxToCur和max。其中maxToCur = Max(maxToCur+num[i], num[i])max = Max(maxToCur, max)-123-21maxToCur-1253原创 2020-08-12 17:52:50 · 123 阅读 · 0 评论 -
LeetCode49——字母易位词分组
题目描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]题目分析首先要对易位词选定一个标志词eat - >aetate -> aettea -> aet这是用到hashmap来记录,key是aet标志词,value是listaet -原创 2020-08-11 18:21:37 · 168 阅读 · 0 评论 -
LeetCode48——旋转图像
题目描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[[ 5, 1, 9,11],[ 2, 4, 8,10],[13, 3, 6, 7],[1原创 2020-08-10 21:41:37 · 140 阅读 · 0 评论 -
LeetCode40——组合总和II(回溯法)
题目描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]]示例 2:输入: cand原创 2020-07-31 23:10:32 · 277 阅读 · 0 评论 -
LeetCode39——组合总和(回溯法)
题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入: candidates = [2,3,5], target原创 2020-07-30 20:55:32 · 277 阅读 · 0 评论 -
LeetCode46——全排列(递归法)
题目描述给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题目分析[ 1, 2, 3 ]①——②——③numclistsetresult①111null②111null21,21,2null③111null21,21,2null31,2,3原创 2020-07-26 10:58:20 · 237 阅读 · 0 评论 -
LeetCode38——外观数列
题目描述给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。**注意:**整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:111211211111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 21 即 “一个 2 一个 1 ” ,记作 12原创 2020-07-25 16:34:22 · 113 阅读 · 0 评论 -
LeetCode36——有效的数独
题目描述判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“5”,".",".","."],原创 2020-07-21 22:42:48 · 119 阅读 · 0 评论 -
LeetCode35——搜索插入位置(二分法)
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0题目分析主要分为三种情况,第一种是target的值远远的大于end的值,此时return end+1,第二种情况是t原创 2020-07-19 22:07:36 · 157 阅读 · 0 评论 -
LeetCode34——在排序数组中查找元素的第一个和最后一个位置(二分法 )
题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]题目分析主要是找到target值的起始点和终止点,当nums原创 2020-07-18 20:57:11 · 157 阅读 · 0 评论 -
十六进制字符串转换成python中的字节数组
前提在数据解析的过程中,因为获取的数据是一个很长的16进制字符串,需要将其转换成python 的字节数据进行处理,对每一个字节进行处理。在查找了很多国内的论坛之后,都没有发现很好的解决方法,最后在StackOverFLow找到了大神的解析,说的通俗易懂,运行成功。StackOverFlow NB!这里附上原文连接:原文连接点这里解答假设十六进制字符串如下:>>> hex_string = "deadbeef"首先转换语句根据python版本的不同有所不同:Python原创 2020-07-17 15:51:47 · 3182 阅读 · 0 评论 -
LeetCode25——K个一组翻转链表(头插法)
题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,原创 2020-07-16 20:14:15 · 163 阅读 · 0 评论 -
LeetCode10——正则表达式匹配(动态规划)
题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s =原创 2020-07-15 20:53:45 · 239 阅读 · 0 评论 -
LeetCode33——搜索旋转排序数组(二分法)
题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例 2:输入: nums = [4,5,6,7,0,1,2], targ原创 2020-07-14 19:38:00 · 124 阅读 · 0 评论 -
LeetCode28——实现 strStr()
题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的原创 2020-07-13 18:48:31 · 123 阅读 · 0 评论 -
LeetCode32——最长有效括号(栈)
题目描述给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”题目分析主要是采用栈的思想,通过表格来列出整个过程。idx是字符串数组的下标,leftmost初始值为-1,stack初始为空,max初始为0.bracketidxleftmoststackmax0-1emp原创 2020-07-07 16:13:01 · 202 阅读 · 0 评论 -
LeetCode41——缺失的第一个正数
题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。题目分析题目要求时间复杂度为O(N)就意味着我们要采用遍历的方法,空间复杂度为常数,就意味着我们要在当地进行操作。整个算法的核心就是把数放在正确的位置,比如1放在数组的第一个位置,3放在数组的第3原创 2020-07-06 12:12:16 · 146 阅读 · 0 评论 -
LeetCode198——打家劫舍(动态规划)
题目描述题目分析S0,S1,S2,S3代表房屋的金额,H0,H1,H2,H3代表房屋。第1间房屋:S0=H0=1第2间房屋:S1=MAX(S0,H1)=2第3间房屋:S2=MAX(S0+H2,S1)=4第4间房屋:S3=MAX(S1+H3,S2)=4递推公式:Sn=MAX(Sn-2+Hn,Sn-1)偷窃前n-1间房屋的数量, 或是偷窃前n-2间房屋的数量加当前第n间房屋的数量。时间复杂度:O(n)空间复杂度:O(1)代码C++代码如下:class Solution {public原创 2020-07-05 09:38:26 · 159 阅读 · 0 评论 -
LeetCode31——下一个排列
题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1题目分析要找到下一个排列就是从后往前找到一个降序的位置,然后从后面找一个比当前数a大的最小的一个数b,然后交换a b的位置,之后对后面的数进行排序。代码Ja原创 2020-07-04 12:26:38 · 309 阅读 · 0 评论 -
LeetCode30——串联所有单词的子串
题目描述给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。输出的顺序不重要, [9,0] 也是有效原创 2020-07-03 11:47:25 · 190 阅读 · 0 评论 -
LeetCode23——合并K个排序链表(堆排序)
题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6题目分析首先按链表的头节点从小到大进行排序,将头节点保存在堆中。然后poll一个next节点,如果next的next节点不为空,则将其offer在堆中。最后返回dummy.next插入的时间复杂度 O(logN);代码Jav原创 2020-07-02 17:34:32 · 436 阅读 · 0 评论 -
LeetCode27——移除元素(双指针)
题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,1,2,2,3,0原创 2020-07-01 21:45:37 · 122 阅读 · 0 评论 -
LeetCode24——两两交换链表中的节点(dummy node)
题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.题目分析主要是对两个节点进行分析,分为四步:1的下一个指向32的下一个指向1当前节点指向2当前节点向后移动两位代码Java代码如下:/** * Definition for singly-linked list. * public class原创 2020-06-30 23:49:31 · 863 阅读 · 0 评论 -
LeetCode22——括号生成(DFS)
题目描述数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入: n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]题目分析括号的生成主要是使用DFS的思想,代码Java代码如下:class Solution { private void dfs(int n, List<String> result, StringBuilder cur,int s原创 2020-06-29 23:13:27 · 259 阅读 · 0 评论 -
LeetCode21——合并两个有序链表(dummy node)
题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入: 1->2->4, 1->3->4输出: 1->1->2->3->4->4题目分析主要通过双指针来实现操作,通过比较两个元素的大小,小的进入到链表当中。这时候还要考虑,退出循环之后的两种情况,L1不为空,将L2剩下的元素补到链表之后;L2不为空,将L1剩下的元素补到链表之后。代码Java代码如下:/** * Defini原创 2020-06-28 19:51:26 · 1935 阅读 · 0 评论 -
LeetCode20——有效的括号
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true题目分析使用stack原创 2020-06-27 19:58:42 · 144 阅读 · 0 评论 -
LeeCode9——回文数
题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。题目分析主要是对各种情况进行分析,注意是10的倍数的情况容易被忽略,还有在判断的时候,奇数个注意num/10与x比较原创 2020-06-26 21:04:53 · 118 阅读 · 0 评论 -
LeetCode29——两数相除
题目描述给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333…) = truncat原创 2020-06-25 17:17:34 · 124 阅读 · 0 评论 -
LeetCode26——删除排序数组中的重复项(双指针)
题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 n原创 2020-06-24 14:41:07 · 162 阅读 · 0 评论 -
LeetCode19——删除链表的倒数第N个节点(dummy node)
题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题目分析利用快慢指针的思想,快指针先走n步,然后慢指针开始走,等到快指针走到结尾的时候,慢指针就到了倒数第n个节点。代码Java代码如下:/** * Definition fo原创 2020-06-23 11:57:57 · 196 阅读 · 1 评论 -
LeetCode18——四数之和
题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2]]题目分原创 2020-06-22 15:57:13 · 94 阅读 · 0 评论 -
LeetCode8——字符串转换整数(atoi)
题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个原创 2020-06-21 18:19:24 · 133 阅读 · 0 评论 -
LeetCode6——Z字形变换
题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s =原创 2020-06-20 18:40:53 · 160 阅读 · 0 评论 -
LeetCode5——最长回文子串(动态规划)
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”题目分析可以使曼切斯特算法来达到O(n)的复杂度,但是并不是很常用,我可以采用曼切斯特的方法来解决这个问题。动态状态数组记录的是第i个位置到第j个位置的子串是否是回文串。代码Java代码如下:class Solution { public Str原创 2020-06-19 19:36:22 · 139 阅读 · 0 评论 -
LeetCode3——无重复字符的最长子串(双指针)
题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。题目分原创 2020-06-18 19:17:15 · 247 阅读 · 0 评论