数据结构论坛

首页 » 分类 » 问答 » 数据结构与算法字符串的最长无重复字符子
TUhjnbcbe - 2021/2/15 1:30:00
题目描述:

给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。

解题思路:

双指针扫描,右指针往回扫描。

实现代码:

importjava.util.*;publicclassSolution{/***

paramarrint整型一维数组thearray*

returnint整型*/publicintmaxLength(int[]arr){//writecodehereintlength=arr.length;if(length=0){return0;}if(length==1){return1;}intright=0;inttmp=0;intmaxLength=0;while(rightlength){intleft=right-1;//回头扫描,要是没有找到相同的,左指针一直倒退while(left=0arr[left]!=arr[right]){left--;}intt=right-left;/***暂时保存子串长度*若指针距离比上一个字符时拥有的子串长度大,就tmp+1*(因为每当右指针移动一位,只有可能比上次最大长度+1或不加1),*否则就设置为指针距离,方便下一步maxLength进行比较*/tmp=tmpt?(tmp+1):t;maxLength=Math.max(maxLength,tmp);//right指针往右移动right++;}returnmaxLength;}}预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: 数据结构与算法字符串的最长无重复字符子