leetcode3题解

简介: leetcode3的题解

LC3

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

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
class Solution {
   
public:
    int lengthOfLongestSubstring(string s) {
   
        int maxlen=0;
        vector<int>m(128,0);
        int head=0;
        for(int i=0;i<s.size();i++){
   
            head=max(head,m[s[i]]);
            m[s[i]]=i+1;
            maxlen=max(maxlen,i-head+1);
        }
        return maxlen;
    }
};//利用vector将字符的ASCII作为下标,值为位置来查重
目录
相关文章
|
5月前
leetcode-1518:换酒问题
leetcode-1518:换酒问题
30 0
|
5月前
leetcode-472. 连接词
leetcode-472. 连接词
45 0
|
5月前
leetcode-1447:最简分数
leetcode-1447:最简分数
44 0
|
5月前
|
Java
leetcode-474:一和零
leetcode-474:一和零
37 0
LeetCode 389. 找不同
给定两个字符串 s 和 t,它们只包含小写字母。
67 0
|
算法 Python
LeetCode 386. Lexicographical Numbers
给定一个整数 n, 返回从 1 到 n 的字典顺序。
77 0
LeetCode 386. Lexicographical Numbers
|
存储 算法
leetcode第43题
个位乘个位,得出一个数,然后个位乘十位,全部乘完以后,就再用十位乘以各个位。然后百位乘以各个位,最后将每次得出的数相加。十位的结果要补 1 个 0 ,百位的结果要补两个 0 。相加的话我们可以直接用之前的大数相加。直接看代码吧。
leetcode第43题
leetcode第53题
解法一和解法二的动态规划,只是在定义的时候一个表示以 i 开头的子数组,一个表示以 i 结尾的子数组,却造成了时间复杂度的差异。问题就是解法一中求出了太多的没必要的和,不如解法二直接,只保存最大的和。
leetcode第53题
leetcode第38题
难在了题目是什么意思呢? 初始值第一行是 1。 第二行读第一行,1 个 1,去掉个字,所以第二行就是 11。 第三行读第二行,2 个 1,去掉个字,所以第三行就是 21。 第四行读第三行,1 个 2,1 个 1,去掉所有个字,所以第四行就是 1211。 第五行读第四行,1 个 1,1 个 2,2 个 1,去掉所有个字,所以第五航就是 111221。 第六行读第五行,3 个 1,2 个 2,1 个 1,去掉所以个字,所以第六行就是 312
leetcode第38题