博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Longest Substring Without Repeating Charactersdf
阅读量:5850 次
发布时间:2019-06-19

本文共 1248 字,大约阅读时间需要 4 分钟。

 

首先呢 可能会想到用一个windows去放这些东西.

可能会想到hashtable去. 但是hashtable 无法用Index去查询. 

abcabcbb.      hashtable:  abc       当第二个a来的时候, 我们想bca  貌似不好实现.

这种情况就很像LRU.  用 node<prev,next>连接,用hashtable<key,node>去记录位置.

这就很麻烦了,有没有别的选择呢?

 

字符反而比integer的这种类型题要简单,因为最多就256种可能性. 可以看成有限制的integer类型题.所以不要心存恐惧啦.

 you would need two indices to record the head and the tail of the current substring.   两个index完美的window.

 

Ok.所以我们需要two index完成window. c[256]记录location. 

 

public class Solution {public int lengthOfLongestSubstring(String s) {        // Start typing your Java solution below        // DO NOT write main() function        int length = s.length();        if (length == 0) {            return 0;        }        int [] countTable = new int[256];        Arrays.fill(countTable, -1);        int max = 1;        int start = 0;        int end = 1;                countTable[s.charAt(0)] = 0;        while (end < length) {            //Has not reached a duplicate char            if (countTable[s.charAt(end)] >= start) {                start = countTable[s.charAt(end)] + 1;                            }            max = Math.max(max, end - start + 1);            countTable[s.charAt(end)] = end;            end++;        }        return max;    }}

 

 

 

转载于:https://www.cnblogs.com/leetcode/p/4003790.html

你可能感兴趣的文章
目标与绩效管理实战专家胡立
查看>>
axios 中断请求
查看>>
2014手机分析图
查看>>
Linux PID 1 和 Systemd
查看>>
一元多项式相加
查看>>
commandLink/commandButton/ajax backing bean action/listener method not invoked (转)
查看>>
软件工作的大环境
查看>>
梅沙教育APP简单分析-版本:iOS v1.2.21-Nathaneko-佳钦
查看>>
Word中如何设置图片与段落的间距为半行
查看>>
JQuery this和$(this)的区别及获取$(this)子元素对象的方法
查看>>
关于分区索引与全局索引性能比较的示例
查看>>
沟通:用故事产生共鸣
查看>>
1080*1920 下看网站很爽
查看>>
CMake 构建项目Android NDK项目基础知识
查看>>
MySQL 不落地迁移、导入 PostgreSQL - 推荐 rds_dbsync
查看>>
[Erlang 0004] Centos 源代码编译 安装 Erlang
查看>>
51 Nod 1027 大数乘法【Java大数乱搞】
查看>>
三维重建技术概述
查看>>
AI x 量化:华尔街老司机解密智能投资正确姿势
查看>>
IT史上十大收购案
查看>>