将没有重复的数据压入数组之中,使用includes进行判断,同时,对重复值前面的数据进行截取,使用shift方法弹出,保留重复之之间的字符,然后进行输出判断
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param arr int整型一维数组 the array
* @return int整型
*/
export function maxLength(arr: number[]): number {
// write code here'
if(arr.length<2) return arr.length
let num = [],count=0,temp=0,j=0
for(let i=0;i<arr.length;i++) {
if(num.includes(arr[i])) {
if(num.length>count) count = num.length
//获取第一个重复字符串的位置
let temp = num.indexOf(arr[i])+1
for(let j = 0;j<temp;j++) {
num.shift()
}
num.push(arr[i])
}
//入栈
else {
num.push(arr[i])
}
}
if(count<num.length) count = num.length
return count
}

京公网安备 11010502036488号