最长不包含重复字符的子串

用动态规划做
关键是创建一个hash表存储每个字符出现过得最晚位置,当该字符再次出现的时候看这两个字符的距离,如果大于前一个dp值,说明不在前一个dp值的范围之内,那么当前的dp值就是前一个dp值加一,如果在小于前一个dp值,说明在前一个dp之内的长度内出现了重复字符,则当前dp不是最长不含重复字符的子串,,当前dp直接更新为当前位置-hash表中该字符位置。

class Solution {public:int lengthOfLongestSubstring(string s) {unordered_map<char, int> m;int ans = 0, tmp = 0;;for(int j = 0; j < s.size(); j++){int i = -1;if(m.find(s[j]) != m.end()){i = m[s[j]];}m[s[j]] = j;tmp = tmp < j-i ? tmp +1 :j-i;// dp[j - 1] -> dp[j]ans = max(tmp, ans);// max(dp[j - 1], dp[j])}return ans;}
};

剑指offter 动态规划相关推荐

  1. 剑指offter笔记

    剑指offter笔记 数组中重复的数字 二维数组中的查找 替换空格 从尾到头打印链表 递归反转链表解题思路 重建二叉树 用两个栈实现队列 斐波那契数列 青蛙跳台阶问题 旋转数组的最小数字 矩阵中的路径 ...

  2. 《剑指offter》

    剑指offter 电子书PDF        https://github.com/YST521/JZOF.git 最近几天看博客时发现一本叫 剑指offter的书 ,里面主要是一些算法题.这些算法面 ...

  3. 剑指offter(1/31)栈与队列

    剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的 ...

  4. [剑指 offer] -- 动态规划-- 面试题46. 把数字翻译成字符串

    1 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,2 ...

  5. 12、剪绳子——剑指offer——动态规划

    剪绳子 问题描述:给你一根长度为n的绳子,请把绳子剪成m段(m和n都是整数,n>1并且m>1), 每段绳子的长度记为k[0],k[1],...,k[m]. 请问k[0]*k[1]*...* ...

  6. 【剑指Offter】替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路:从前 ...

  7. 《剑指offter》第十九题(js)

    第十九题 顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  8. 【剑指offter】二维数组中的查找

    题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  9. 【剑指offter】重建二叉树

    题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7 ...

最新文章

  1. PAT1036:Boys vs Girls
  2. Ubuntu创建新用户的正确姿势
  3. Xgboost实现GPU加速
  4. 在alv list小计之后输出分割线
  5. AOP之proceedingjoinpoint和joinpoint区别(获取各对象备忘)、动态代理机制及获取原理代理对象、获取Mybatis Mapper接口原始对象...
  6. 2021年中国超轻型直升机市场趋势报告、技术动态创新及2027年市场预测
  7. py2exe打包python_Python打包-py2exe使用
  8. ELK在广告系统监控中的应用 及 Elasticsearch简介
  9. VMWaer克隆centos后网络的问题解决
  10. lol一直显示服务器异常怎么办,lol服务器连接异常即将退出怎么解决
  11. html投影电脑,如何将电脑内容显示到投影仪或电视上?详细教程奉上
  12. sa结构组网方式_NSA和SA两种组网方式均为5G
  13. 不需要抓包分析、简单粗暴的模拟校园网登录方法——基于python playwright
  14. 多个视频如何合 并,怎么合成视频
  15. MATLAB线形规划函数linprog、intlinprog与二次规划函数quadprog
  16. 修改Oracle序列值
  17. Linux性能分析工具总结
  18. java 日期处理_java日期处理总结
  19. 六月:手动学数据分析(task02)
  20. 获取网站的浏览器上的icon图标

热门文章

  1. 中国独角兽企业前景预测及投资规划建议报告2022-2028年版
  2. css布局入门级实战之九宫格网格布局
  3. 一个屌丝程序猿的人生(一)
  4. 【服务器】安装Linux(centos)操作系统详细步骤
  5. unity android服务器端,【深圳Unity3D培训】 Android客户端与PC服务器实现Socket通信
  6. 最长回文 HDU - 3068 马拉车算法
  7. HashMap、LinkedHashMap、TreeMap的深入认识
  8. 多模、AI 齐上阵,Deepfake 换脸术克星驾到!
  9. 浅谈代码规范基础调试几道面试题
  10. 简单两步,将Windows11右键菜单修改为Windows10风格