网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1184|回复: 0
打印 上一主题 下一主题

Java编程-找到字符串的最长无重复字符子串

[复制链接]

97

主题

98

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
跳转到指定楼层
楼主
发表于 2020-9-11 10:36:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目描述:给定一个数组arr(1≤n≤10^5),返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。

示例1
输入:[2,3,4,5]
输出:4

示例2
输入:[2,2,3,4,3]
输出:3
代码实现:
import java.util.*;


public class Solution {
    public int maxLength (int[] arr) {
         int[] last = new int[100000];
        int n = arr.length;

        int res = 0;
        int start = 0; // 窗口开始位置
        for(int i = 0; i < n; i++) {
            int index = arr[i];
            start = Math.max(start, last[index]);
            res   = Math.max(res, i - start + 1);
            last[index] = i+1;
        }

        return res;
    }
}



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 23:18 , Processed in 0.032169 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表